最近在修改一个前任同事留下来的JAVA操作Excel表的小程序,修改出一些心得,记录下来,大家分享。
由于之前的程序使用的是模板的方式,定义好了样式,甚至连最大的行数都用边框定义好了。这样非常不灵活,用户的数据量一大,会报空指针异常。一条数据也写不进去了。
查找原因,原来是POI里的两个方法不同导致的!
一个是随着循环变量的递增,创建新的数据行。
HSSFRow row = sheet.createRow(rowCount++);
HSSFCell cell = row.createCell(cellCount++);
一个是随着循环变量的递增,读取模板的数据行。
HSSFRow row = sheet.getRow(rowCount++);
HSSFCell cell = row.getCell(cellCount++);
前者比较灵活。用户有多少数据量,它就创建多少数据行,既不会抛空指针,也不会有单元格的冗余。
后者比较死板。用户的数据量增加,模板就必须增加到相应的行数,否则会抛空指针,而且存在着单元格冗余的情况,假设模板增加到了1000行,而用户这次只有1条数据(不是我夸张,是真实情况,用户多的时候成百上千条,少的时候只有几行,甚至1行数据),这时就会产生大量冗余单元格,文件大小没有必要的增加了很多。
所以,建议大家,用模板时,只把标题,表头,列名等永远不变的信息放在模板里,至于那些动态添加的记录,以及样式,使用前一种方式动态增加即可!
更多在这个项目中,及今后工作中遇到的问题,积累的经验。尽请期待以后的博文。。。。
分享到:
相关推荐
poi 操作excel模板,读取数据后,讲数据填充到新生成的文件中且提供下载
poi excel poi excel poi excel poi excel poi excel poi excel poi excel poi excel
POI生成Excel POI读取Excel java操作Excel Servlet生成Excel web项目,包含含读取Excel与生成Excel方法
POI操作excel表格 讲的很详细,很有用
POI操作Excel生成水印,该水印其实就是一个图片,该代码是将文字生成图片,再将图片变成水印的。
通过反射和相应的约定实现POI操作Excel的封装
poi操作excel2007
poi操作excel的Demo
为更方便的使用POI的API来操作Excel(2003)文件,对POI中针对Excel文件的读写进行了简单封装。此类中包含以下功能: 1.根据模板创建Excel文件 2.获取及更新Excel文件内容 3.创建、复制Sheet 4.设置Sheet名称 ... ...
使用POI操作Excel文件(写)可参考:http://blog.csdn.net/flyever581549/archive/2008/11/11/3275850.aspx
java操 作 excel2007 所使用poi.jar包,版本是poi_3.17.jar poi_3.15.jar,里面还有一个jxl.jar内容全面,实用性强.
poi操作Excel详细帮助文档poi操作Excel详细帮助文档
Apache poi 操作 excel 文件压缩包,亲测可用
java使用POI导出 Excel+图片工具类 ,里面含有poi jar包,只调用接口即可直接保存Excel。使用的时候需先把数据封装,具体包装需根据实际导出数据进行处理。文件demo中只提供包装格式。
POI 删除excel列,可以设置多列,POI里怎么没有删除列的API呢
POI使用excel模板循环输出行到文件并导出的一个小例子
Java Poi 操作excel的API 好用
poi操作excel所需的完整jar包,直接导入ide,buildpath即可使用,完整依赖,不会报noclassfoundexception
可以运行的POI导出Excel文件实例,里面有两种方法,一个是Servlet,一个是main
这个是java用poi操作Excel进行导出,并且可以自动换行