What's that delete cell/ create cell thing ... dont understand why you need to
do it, but I dont think the formula is going to work if you delete the cells
that it refers to...
On Wednesday 09 August 2006 18:57, 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(HSSFFor
>m ulaEvaluator.java:281)
> at
> org.apache.poi.hssf.usermodel.HSSFFormulaEvaluator.evaluate(HSSFFormulaEval
>u 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: [EMAIL PROTECTED]
> Mailing List: http://jakarta.apache.org/site/mail2.html#poi
> The Apache Jakarta Poi Project: http://jakarta.apache.org/poi/
---------------------------------------------------------------------
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/