You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@poi.apache.org by Nouman Shaikh <no...@yahoo.com> on 2006/11/16 11:41:57 UTC

Re: stuck on formula evaluations

I think its too late but I just saw your mail

just add this line before calling the 'evaluate()' method. 

evaluator.setCurrentRow(cellReference.getRow());

It'll work.

Nouman



Blanchette, Nicole wrote:
> 
> Hi,
> I'm trying to read in an existing worksheet with formulas, modify it, and
> then read the results after the formulas have been calculated (for a GUI).
> I
> have the scratchpad jar and a recent version of the poi. I can't seem to
> evaluate the formula though, and then read back the result. I've been
> testing with a very simple worksheet and program. I've read the Formula
> Evaluation page on the Jakarta website several times, and still can't
> figure
> it out... Any sort of help would be greatly appreciated.
> 
> My error message reads:
> java.lang.NullPointerException 	
> 	at
> org.apache.poi.hssf.usermodel.HSSFFormulaEvaluator.internalEvaluate(HSSFForm
> ulaEvaluator.java:281) 	
> 	at
> org.apache.poi.hssf.usermodel.HSSFFormulaEvaluator.evaluate(HSSFFormulaEvalu
> ator.java:181) 	
> 	at testexcel.Frame1.jbInit(Frame1.java:175) 	
> 	at testexcel.Frame1.<init>(Frame1.java:81) 	
> 	at testexcel.testexcel.<init>(testexcel.java:20) 	
> 	at testexcel.testexcel.main(testexcel.java:50)
> 
> relevant part of my code:
> 
> import org.apache.poi.hssf.usermodel.HSSFCell;
> import org.apache.poi.hssf.usermodel.HSSFRow;
> import org.apache.poi.hssf.usermodel.HSSFSheet;
> import org.apache.poi.hssf.usermodel.HSSFWorkbook;
> import org.apache.poi.hssf.usermodel.HSSFFormulaEvaluator;
> 
> 
> POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream("file
> path"));
>         FileOutputStream stream = new FileOutputStream("new file path");
>         HSSFWorkbook wb = new HSSFWorkbook(fs);
>         HSSFSheet sheet = wb.getSheetAt(0);
>         HSSFFormulaEvaluator evaluator = new HSSFFormulaEvaluator(sheet,
> wb);
>         wb.write(stream);
> 
>         //get necessary rows & cells
>         HSSFRow row1 = sheet.getRow(1);
>         HSSFRow row2 = sheet.getRow(2);
>         HSSFCell cell1 = row1.getCell((short) 0);
>         HSSFCell cell2 = row2.getCell((short) 0);
> 
>         //remove cells that you're writing to
>         row1.removeCell(cell1);
>         row2.removeCell(cell2);
> 
>         //create new cells to insert
>         HSSFCell cell5 = row1.createCell((short)0);
>         HSSFCell cell6 = row2.createCell((short)0);
>         HSSFCell cell7 = row1.getCell((short)1);
>         HSSFCell cell8 = row2.getCell((short)1);
> 
>         //set values of cells
>         cell5.setCellValue("5"); //these values actually come from user
> input, from textfield
>         cell6.setCellValue("1");
>         cell7.setCellValue("bob");
> 
>         //write to workbook
>         wb.write(stream);
>         stream.close();
>         
>         //evaluate simple formula in cell8 (=cell5 - cell6)
>          HSSFFormulaEvaluator.CellValue cellValue =
> evaluator.evaluate(cell8);
>          String a = String.valueOf(cellValue); //value must be string to
> read out in textfield
> 
>         //retrieve values
>         jLabel6.setText(cell7.getStringCellValue());
>         jTextField3.setText(a); //these text fields are showing up blank
> when I run it
> 
> 
> I'm new to the list, new to poi, and new to Java, so my apologies if this
> has already been gone over a bunch of times or if I ask a lot of stupid
> questions. 
> Thanks,
> Nicole
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: poi-user-unsubscribe@jakarta.apache.org
> Mailing List:     http://jakarta.apache.org/site/mail2.html#poi
> The Apache Jakarta Poi Project:  http://jakarta.apache.org/poi/
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/stuck-on-formula-evaluations-tf2078797.html#a7375275
Sent from the POI - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: poi-user-unsubscribe@jakarta.apache.org
Mailing List:     http://jakarta.apache.org/site/mail2.html#poi
The Apache Jakarta Poi Project:  http://jakarta.apache.org/poi/