乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > java <em>POI</em> 输出EXCEL中的公式失效

java <em>POI</em> 输出EXCEL中的公式失效

作者:乔山办公网日期:

返回目录:excel表格制作


2007版本的需要使用XSSFWorkbook来处理,如果不确定读取的excel版本的话可以写的if判断下如果后缀为".xls"创建HSSFWorkbook 否则创建 XSSFWorkbook来对文件进行操作即可.
Workbook excelWB = null;
Sheet oneSheet = null;
Row oneRow = null;
Cell oneCell = null;
.....
if("xls".equals(excFilSuff)){
excelWB = new HSSFWorkbook(excelFile);
}else{
excelWB = new XSSFWorkbook(excelFile);
}
//获取第0个sheet对象zd
oneSheet = excelWB.getSheetAt(0);
//获取每行对象
oneRow = oneSheet.getRow(rowNum);
// 获取第几列对象
oneCell = oneRow.getCell(cellNum);

你不要自己重新建一个workbook,直接用io读取到的源文件,创建的对象进行修改应该就没问题了吧
第二段:POI中Excel文件Cell的类型
在读取每一个Cell的值的时候,通过getCellType方法获得当前Cell的类型,在Excel中Cell有6种类型,如下面所示。

Cell的类型

CellType
说明

CELL_TYPE_BLANK
空值

CELL_TYPE_BOOLEAN
布尔型

CELL_TYPE_ERROR
错误

CELL_TYPE_FORMULA
公式型

CELL_TYPE_STRING
字符串型

CELL_TYPE_NUMERIC
数值型

一般都采用CELL_TYPE_STRING和CELL_TYPE_NUMERIC类型,因为在Excel文件中只有字符串和数字。如果Cell的Type为CELL_TYPE_NUMERIC时,还需要进一步判断该Cell的数据格式,因为它有可能是Date类型,在Excel中的Date类型也是以Double类型的数字存储的。Excel中的Date表示当前时间与1900年1月1日相隔的天数,所以需要调用HSSFDateUtil的isCellDateFormatted方法,判断该Cell的数据格式是否是Excel Date类型。如果是,则调用getDateCellValue方法,返回一7a686964616fe4b893e5b19e338个Java类型的Date。

五种情况:
1、举个例子看呢,一般输入公式就得出结果,引用公示结果的话,刷新下数据看看;
2、看看数据是不是设成了文本格式,如是请设置为常规或数值格式然后双击该单元格后回车
3、如果还不行的话那是电脑反应太慢,可以按F9就可以重新计算了;
4、先输入=,再输入公式,最后按回车执行;
5、工具\选项\重新计算\选自动计算,是否为自动重算;

相关阅读

  • java <em>POI</em> 输出EXCEL中的公式失效

  • 乔山办公网excel表格制作
  • 2007版本的需要使用XSSFWorkbook来处理,如果不确定抄读取的excel版本的话可以写的if判断下如果后缀为".xls"创建HSSFWorkbook 否则创建 XSSFWorkbook来对文件进行操作即可.Workbook excelWB = null;Sheet o
  • java通过poi生成excel的版本问题

  • 乔山办公网excel表格制作
  • 这个好像是你导出的或者是导入的时候,版本判断有问题XSSF不能读取Excel2003以前(包括2003)的版本,没需要就知按你之前的继续,如果在读取前道判断文件是2003前的版本还是2007的版本,
关键词不能为空
极力推荐

聚合标签

ppt怎么做_excel表格制作_office365_word文档_365办公网