poi解析excel2003和2007有没有办法是用同样的方法实现
获取workbook 后,后续处理Sheet、Row、Cell 统统用接口实现,不用关注03,07差异性。也就是根本不会涉及到 XSSFCell、HSSFCell这些类。
说到Excel,有2003和2007,格式是不一样的,用POI解析的方法也就不一样,Excel2003主要是使用org.apache.poi.hssf.usermodel包中的类来解析,而Excel2007就是使用org.apache.poi.xssf.usermodel来解析。
XSSF不能读取Excel2003以前(包括2003)的版本,没需要就按你之前的继续,如果在读取前判断文件是2003前的版本还是2007的版本,提供个思路。
poi写入excel,用2003查看数据一切正常,用2007查看,数据全全编程0了…
1、这和数据库没有关系 因为setCellValue方法的参数是有double,boolean,string等,而你传进去的是float,他会把你的float转换成double,转的时候有问题。如果是把float a=4444443f;直接弄成变量打印,也会出现这种情况。
2、不用改公式,只需要用cell.getNumericCellValue()获取,读出来就是正确的值了,如果你读出来的还有问题,说明你其他的地方写的还有问题。
3、工具\选项\重新计算\选自动计算;引用的poi7的包 不支持,sheet.setForceFormulaRecalculation(true);换成8的包 使用cell.setCellFormula方法重新在制定Cell里写入公式。
java通过poi生成excel的版本问题
1、excel文档有问题,从截图下方看(就是乱码部分)可能excel文档的第1个sheet是个被删除的sheet,所以名称是很长的乱码,导致无法读取。修改方法:创建一个新的excel文档,然后将需要的内容以文本的形式复制进去,再调用。
2、POI8的SXSSF包是XSSF的一个扩展版本,支持流处理,在生成大数据量的电子表格且堆空间有限时使用。SXSSF通过限制内存中可访问的记录行数来实现其低内存利用,当达到限定值时,新一行数据的加入会引起老一行的数据刷新到硬盘。
3、import org.apache.poi.hssf.usermodel.HSSFCell;import java .io.FileInputStream;public class ReadXL { /** Excel文件的存放位置。
4、报格式错误是因为你没有填充EXCEL的内容。
5、我只知道在cell 前面加英文的号能变成字符串。