[prev in list] [next in list] [prev in thread] [next in thread]
List: poi-dev
Subject: DO NOT REPLY [Bug 27852] New: -
From: bugzilla () apache ! org
Date: 2004-03-22 17:09:19
Message-ID: 20040322170919.23724.qmail () nagoya ! betaversion ! org
[Download RAW message or body]
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=27852>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND
INSERTED IN THE BUG DATABASE.
http://issues.apache.org/bugzilla/show_bug.cgi?id=27852
POI wrongly reports a name for a cell formula that references a name
Summary: POI wrongly reports a name for a cell formula that
references a name
Product: POI
Version: 2.0FINAL
Platform: PC
OS/Version: Windows XP
Status: NEW
Severity: Critical
Priority: Other
Component: HSSF
AssignedTo: poi-dev@jakarta.apache.org
ReportedBy: brice.copy@cern.ch
POI reports invalid HSSFName that are in fact VB functions. This somehow causes
an EmptyStackException. There does not seem to be any workaround to this problem.
VB functions can accept a Name as their parameter (=a VB object of type Range).
You can reference such a VB function in a formula, like any other built-in excel
function.
When POI opens a workbook containing cells that use a formula referencing a
name, it reports a name for each formula referencing a name. Of course, the
reported HSSFName object is invalid, as its field_13_name_definition member is
an empty stack, while the field_13_raw_name_definition is null.
From the HSSF usermodel package, there is no way to tell the difference between
a valid HSSFName (referencing a name defined in the excel workbook) and an
invalid one (referencing a function that uses a name as its argument).
When trying to access an invalid HSSFName, the following exception occurs :
java.util.EmptyStackException
java.lang.Object java.util.Stack.peek()
Stack.java:82
java.lang.String
org.apache.poi.hssf.record.NameRecord.getAreaReference(org.apache.poi.hssf.model.Workbook)
NameRecord.java:705
java.lang.String org.apache.poi.hssf.usermodel.HSSFName.getReference()
HSSFName.java:126
TO REPRODUCE THIS BUG :
- Save the provided test case (an excel file defining two simple functions and
two names)
- Open the test case with the attached java test case.
- If you debug, you will notice that POI reports four HSSFName objects (while
only two are defined in the excel file)
- The test case should fail with an EmptyStackException - because POI does not
check the validity of the HSSFName object before getting its reference)
---------------------------------------------------------------------
To unsubscribe, e-mail: poi-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: poi-dev-help@jakarta.apache.org
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic