Jeff,
Example quoted by Nidhi is appropriate. I am not able to
understand when you say "Now, it seems to be
ignoring the sheet reference and reading cells on the current sheet". I
think you should review the code again to check why it is referencing the
"current" sheet and not the "correct" sheet.
Are you using the single quotes to reference the other sheet name ? Also,
I think the example quoted below is referencing the cell based on its
name, which is an added feature. If I rewrite the statement like
String _formula =
"SUM(\'"+fromSheetname+"\'!"+"B:11"+":"+"B:12"+")";
and set this formula in a cell:
cell.setCellType(2).setCellFormula(_formula);
it should work.
I don't have much experience with the HSSFFormulaEvaluator class. However,
I don't think you need a Evaluator class to read the cell. If your
intention is to read the formula of a cell which is of type formula, you
can simply go a cell.getCellFormula(). Maybe I am missing something... :)
- Sumit
"Nidhi Tuli" <[EMAIL PROTECTED]>
07/07/2006 04:42 PM
Please respond to
"POI Users List" <[email protected]>
To
"POI Users List" <[email protected]>
cc
Subject
RE: problem evaluating reference to another sheet
For me the following code works fine.
CellReference toRef = new CellReference(1,"colName1");
CellReference fromRef = new CellReference(2,"colName2");
String formula =
"SUM(\'"+fromSheetname+"\'!"+toRef.toString()+":"+fromRef.toString()+")"
;
This code generated formula resulted in =SUM('Report'!B11:B11) where
'Report' is the name of the sheet.
Hope this helps
Nidhi
-----Original Message-----
From: Jeff Kays [mailto:[EMAIL PROTECTED]
Sent: Friday, July 07, 2006 1:35 PM
To: POI Users List
Subject: RE: problem evaluating reference to another sheet
Sumit, thanks for the idea. The sheet I was referencing did have a space
in it. So I renamed the sheet to remove the space. Now, it seems to be
ignoring the sheet reference and reading cells on the current sheet.
So I should only need the one HSSFFormulaEvaluator instance, set with
the current page? I can create a small test example if that would help.
Thanks!
jeff
-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]
Sent: Fri 7/7/2006 3:21 PM
To: POI Users List
Cc:
Subject: Re: problem evaluating reference to another sheet
Jeff,
Cell references to other worksheets within the worksheet should
work. When I implemented this, I found that "spaces" within the sheet
name
are not recognized by POI. If sheet names are like "firstname lastname"
then it will create problems. Try removing the space chars in the names
and then give it a shot.
I did this while "creating" multi-tab excel workbook having cross
reference formula's.
hope this helps.
Sumit
"Jeff Kays" <[EMAIL PROTECTED]>
07/07/2006 03:38 PM
Please respond to
"POI Users List" <[email protected]>
To
<[email protected]>
cc
Subject
problem evaluating reference to another sheet
Hi. I'm trying to read an Excel spreadsheet that has references to other
sheets in the same workbook. References to cells on my current sheet
work
fine, but when I try to evaluate one of these references to another
sheet
I get the following exception:
java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.lang.String.charAt(String.java:444)
at
org.apache.poi.hssf.util.CellReference.<init>(CellReference.java:44)
at
org.apache.poi.hssf.record.formula.ReferencePtg.<init>(ReferencePtg.java
:50)
at
org.apache.poi.hssf.model.FormulaParser.Ident(FormulaParser.java:292)
at
org.apache.poi.hssf.model.FormulaParser.Factor(FormulaParser.java:480)
at
org.apache.poi.hssf.model.FormulaParser.Term(FormulaParser.java:569)
at
org.apache.poi.hssf.model.FormulaParser.Expression(FormulaParser.java:61
7)
at
org.apache.poi.hssf.model.FormulaParser.parse(FormulaParser.java:721)
at
org.apache.poi.hssf.usermodel.HSSFFormulaEvaluator.internalEvaluate(HSSF
FormulaEvaluator.java:284)
at
org.apache.poi.hssf.usermodel.HSSFFormulaEvaluator.evaluate(HSSFFormulaE
valuator.java:181)
I'm using the 3.0 alpha1 jars.
My questions are: Should this work? If not, can I do something like
create
an HSSFFormulaEvaluator for the sheet being referenced and then evaluate
the cell on the reference sheet with that evaluator?
Any help is greatly appreciated!
jeff
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
Mailing List: http://jakarta.apache.org/site/mail2.html#poi
The Apache Jakarta Poi Project: http://jakarta.apache.org/poi/
+=========================================================+
This message may contain confidential and/or privileged
information. If you are not the addressee or authorized to
receive this for the addressee, you must not use, copy,
disclose or take any action based on this message or any
information herein. If you have received this message in
error, please advise the sender immediately by reply e-mail
and delete this message. Thank you for your cooperation.
+=========================================================+
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
Mailing List: http://jakarta.apache.org/site/mail2.html#poi
The Apache Jakarta Poi Project: http://jakarta.apache.org/poi/
+=========================================================+
This message may contain confidential and/or privileged
information. If you are not the addressee or authorized to
receive this for the addressee, you must not use, copy,
disclose or take any action based on this message or any
information herein. If you have received this message in
error, please advise the sender immediately by reply e-mail
and delete this message. Thank you for your cooperation.
+=========================================================+