- 论坛徽章:
- 0
|
先说说我的问题吧。我用了jexcelapi软件包来读取excel的公式,有些还真能读正确,但有些读不出来,或者读错了。
当然先下载jexcelapi,并配置好。
......
<%@page import="jxl.*"%>;
<%@page import="jxl.read.biff.*"%>;//引用jxl包,可见我是用jsp写的。
.......
is = new FileInputStream(filePath);
rwb = Workbook.getWorkbook(is);
rwb = Workbook.getWorkbook(myFilePath);//连接excel文件;
..........
Sheet mysheet = rwb.getSheet(0);////获取第一张Sheet表
....
jxl.Cell mycelltxt = mysheet.getCell(myh,myc);//得到myc行,myh列的单元格。
uvalue = mycelltxt.getContents();//得到单元格值。
FormulaCell FCell = (FormulaCell)mycelltxt;
uformula = FCell.getFormula();//得到公式。
.....................
它有的单元格可以正确读出它的值跟公式,有些单元格就不能读出公式(而这些单元格明明有公式)。
后来,我又在网上找了poi软件包。
当然是先下载,并且配置好。
<%@page import="org.apache.poi.hssf.usermodel.*"%>; //>;//引用poi包。
.....
fileInput = new FileInputStream(myFilePath);
wb = new HSSFWorkbook(fileInput);
HSSFSheet mysheet = wb.getSheetAt(0); ////获取第一张Sheet表
......
HSSFRow myrow = mysheet.getRow(myc); // 第myc行
HSSFCell mycell = myrow.getCell((short)myh); // 第myh列的单元格。
...........
switch(mycell.getCellType())
{
case HSSFCell.CELL_TYPE_NUMERIC:
double cd =mycell.getNumericCellValue();
uvalue = java.lang.Math.round(cd) +"";
break;
case HSSFCell.CELL_TYPE_STRING:
uvalue = mycell.getStringCellValue();
break;
case HSSFCell.CELL_TYPE_FORMULA:
uformula = mycell.getCellFormula();
break;
}
它有些单元格可以正确的读取值和它的公式(当然该单元格必须有公式的)。有些单元格读出的公式是“NO IDEA SHARED FORMULA EXP PTG”。
英文描述:
I 'm getting this string when I output a "SUM(C7:C " formula cell using
cell.getCellFormula()
String Output Message:
NO IDEA SHARED FORMULA EXP PTG
Can someone tell me why I 'm receiving this message? |
|