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 2003/08/09 04:25:25 UTC
DO NOT REPLY [Bug 16560] -
testBoolErr.xls crashes Excel '97
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=16560>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND
INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=16560
testBoolErr.xls crashes Excel '97
------- Additional Comments From zalewski@optonline.net 2003-08-09 02:25 -------
This does not work in any version of Excel, unless you run the testcase against
the head. In that case, the testcase produces a spreadsheet that loads
properly, but the testcase fails.
The reason is that the testcase calls HSSCell.setErrorValue( (byte) 1), which
is an invalid argument. The valid arguments are
0 #NULL!
7 #DIV/0!
15 #VALUE!
23 #REF!
29 #NAME?
36 #NUM!
42 #N/A
These are the 7 error types allowed in Excel. There are no others. If you set
the erro value of a BOOLERR record to any other value, the spreadsheet will not
load in Excel.
Why these magic numbers? Put the error codewords together in a string and
seperate each with a \0, like you would if you were programming in C. The magic
numbers are the offsets to the beginning of each codeword.
#NULL! #DIV/0! #VALUE! #REF! #NAME? #NUM! #N/A
0123456789012345678901234567890123456789012345
0 1 2 3 4
I would work on a patch for this but... the HEAD is very strange right now. The
performance branch merge seems to have changed *everything*.
My instinct is that BoolErrRecord should throw an exception if the client tries
to set an unacceptable value. Add public static final int into BoolErrRecord to
represent the 7 allowed values. Change the testcase that produces
testBoolErr.xls. And add a new testcase to verify that invalid arguments to
HSSFCell.setErrorValue throw an exception.
---------------------------------------------------------------------
To unsubscribe, e-mail: poi-dev-unsubscribe@jakarta.apache.org
Mailing List: http://jakarta.apache.org/site/mail2.html#poi
The Apache Jakarta POI Project: http://jakarta.apache.org/poi/