You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@poi.apache.org by bu...@apache.org on 2009/04/06 12:14:21 UTC
DO NOT REPLY [Bug 46973] New: IllegalArgumentException when calling
Name.isDeleted().
https://issues.apache.org/bugzilla/show_bug.cgi?id=46973
Summary: IllegalArgumentException when calling
Name.isDeleted().
Product: POI
Version: 3.5-dev
Platform: PC
OS/Version: Windows XP
Status: NEW
Severity: normal
Priority: P2
Component: HSSF
AssignedTo: dev@poi.apache.org
ReportedBy: matthew.knl@gmail.com
I use following codes to read attached "problem.xls" Excel file to list the
named
ranges. But it throws IllegalArgumentException when calling
namedRange.isDeleted().
--
FileInputStream fis = new FileInputStream("problem.xls");
POIFSFileSystem poifs = new POIFSFileSystem(fis);
HSSFWorkbook excelWB = new HSSFWorkbook(poifs);
for (int i = 0; i < excelWB.getNumberOfNames(); i++)
{
try
{
Name namedRange = excelWB.getNameAt(i);
if (namedRange.isFunctionName() || namedRange.isDeleted())
{
continue;
}
System.out.println("name: " + namedRange.getNameName());
}
catch (Exception ex)
{
logger.error("Read named range failed.");
logger.error(ex, ex);
System.out.println(ex);
}
}
--
Exception details:
java.lang.IllegalArgumentException: ptgs must not be null
at
org.apache.poi.ss.formula.FormulaRenderer.toFormulaString(FormulaRenderer.java:48)
at
org.apache.poi.hssf.model.HSSFFormulaParser.toFormulaString(HSSFFormulaParser.java:80)
at
org.apache.poi.hssf.usermodel.HSSFName.getRefersToFormula(HSSFName.java:192)
at org.apache.poi.hssf.usermodel.HSSFName.isDeleted(HSSFName.java:201)
--
Please help to check this issue. Thanks!
--
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@poi.apache.org
For additional commands, e-mail: dev-help@poi.apache.org
DO NOT REPLY [Bug 46973] IllegalArgumentException when calling
Name.isDeleted().
Posted by bu...@apache.org.
https://issues.apache.org/bugzilla/show_bug.cgi?id=46973
--- Comment #1 from Matthew <ma...@gmail.com> 2009-04-06 03:15:08 PST ---
Created an attachment (id=23444)
--> (https://issues.apache.org/bugzilla/attachment.cgi?id=23444)
problem.xls
--
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@poi.apache.org
For additional commands, e-mail: dev-help@poi.apache.org
DO NOT REPLY [Bug 46973] IllegalArgumentException when calling
Name.isDeleted().
Posted by bu...@apache.org.
https://issues.apache.org/bugzilla/show_bug.cgi?id=46973
Josh Micich <jo...@gildedtree.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |FIXED
--- Comment #2 from Josh Micich <jo...@gildedtree.com> 2009-04-06 13:07:46 PST ---
It appears that the attached workbook has a defined name "UPSState" with all
other properties uninitialised. Excel silently ignores the name, and if you
re-save, the name is removed. It seems like the offending record was created
via POI, using code like this:
Workbook wb = new HSSFWorkbook();
wb.createSheet("Sheet1");
Name n = wb.createName();
n.setNameName("UPSState");
wb.write(new FileOutputStream("bad-name.xls");
It would be a big change to make POI do the same as Excel (delete the name and
adjust all formulas), so it was just fixed to avoid the
IllegalArgumentException. For uninitialised defined names, isDeleted() will
return false and getRefersToFormula() will return null.
Fixed in svn r762479 ( https://svn.apache.org/viewcvs.cgi?view=rev&rev=762479 )junits added
--
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@poi.apache.org
For additional commands, e-mail: dev-help@poi.apache.org