java通过poi生成excel的版本问题

我通过HSSFWorkbook wb = new HSSFWorkbook();创建了excel97-2003的文档对象
通过XSSFWorkbook wb = new XSSFWorkbook();创建了exce2007的文档对象
我想知道能不能通过XSSFWorkbook wb = new XSSFWorkbook();创建2003文档对象。我试了好多次,创建的文件读取都会提示有问题

XSSF不能读取Excel2003以前(包括2003)的版本,
没需要就按你之前的继续,如果在读取前判断文件是2003前的版本还是2007的版本,提供个思路。XSSF和HSSF虽然在不同的包里,但却引用了同一接口Workbook,
Workbook book = null;
try {
book = new XSSFWorkbook(excelFile);
} catch (Exception ex) {
book = new HSSFWorkbook(new FileInputStream(excelFile));
}
各版本的Excel中测试,没有发生异常
温馨提示:内容为网友见解,仅供参考
无其他回答

java用poi导出excel文件,打开导出的文件时报错,怎么办?
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.util.CellRangeAddress;import org.apache.poi.hssf.util.HSSFColor;\/ 导出Excel公共方法 version 1.0 author wangcp \/ public...

java POI 导出的Excel表打开时提示“ xxxx.xlsx 发现不可读取的内容 是...
你在做导出的时候如果是用已经画好的模板再动态去做合并的话,最好将存在的模板恢复到初始格式,这样用poi做合并的时候就不会报这个问题了

java 中用POI导出Excel时,怎么设置条件格式-->数据条?
POI里可能没有这个机能。不过你可以这样做。把带有这个格式的Excel文件,做为模板。每次把模板文件读进来,把自己要输出的数据填到对应的单元格里。之后,把填完数据的Excel文件,保存到指定路径里。或者从浏览器里弹出。

java poi设置excel字体部分失效
使用POI写入excel数据时,如果使用的excel版本是2003,当创建过多的样式(格式)时容易发生单元格丢失问题,所以需要严格控制单元格样式的创建和生成,同样的样式只创建1次,所有同样式的Cell共享。

java中poi读取excel时报错:Unable to construct record instance,怎 ...
1、excel文档有问题,从截图下方看(就是乱码部分)可能excel文档的第1个sheet是个被删除的sheet,所以名称是很长的乱码,导致无法读取。修改方法:创建一个新的excel文档,然后将需要的内容以文本的形式复制进去,再调用。2、poi的问题,这个有可能是poi和excel的版本不对应。修改方法:下载poi的时候确定...

Java poi导出Excel,小数点后面数据缺失
数据缺失可能是精度问题。没看到具体代码 也不知道。你可以试试 BigDecimal b = new BigDecimal(0).setScale(5),精度可以设大一点,就可以看看。如果不是精度的问题,那具体我就想不到了。POI解析EXCEL 最多的问题就是数据类型的问题。

java 使用POI3.7 HSSF 报表导出内存溢出问题
这个主要是excel表格版本的问题2003是有限制的65535,用2007的能导一百万数据,不过内存需要适当的设置大点

java poi导出Excel进度问题
token标签的实现原理是在表单中拉架一个隐藏域,每次加载该页面时,该隐藏域的值都不相同。而TokenInterceptor拦截器则拦截所有用户请求,如果两次请求时该隐藏域的值相同,则阻止表单提交。然后需要你自己写一个拦截器,拦截错误信息,拦截下来之后给出的提示语句就可以你自己定了比如“当前页面正在提交过程中...

java poi 生成Excel 速度非常慢,求优化方案?数据才到2000左右的时候就开...
发现你问题的所在了,你把过多的可重用的东西卸写在了循环内 HSSFCellStyle cellStyle = wb.createCellStyle();HSSFDataFormat format = wb.createDataFormat();cellStyle.setDataFormat(format.getFormat("@"));\/\/ HSSFRow row = sheet.createRow(i+2);\/\/这句不可重用 HSSFCell policyNoCell ...

java 使用poi往excel文件写入,如何每次追加一条,而不是覆盖掉以前的数据...
你第三步下面那行代码是控制插入在哪一行的,你一直是0所以就覆盖了,你要让它每次加1.

相似回答