最近在修改一个前任同事留下来的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行数据),这时就会产生大量冗余单元格,文件大小没有必要的增加了很多。
所以,建议大家,用模板时,只把标题,表头,列名等永远不变的信息放在模板里,至于那些动态添加的记录,以及样式,使用前一种方式动态增加即可!
更多在这个项目中,及今后工作中遇到的问题,积累的经验。尽请期待以后的博文。。。。
分享到:
相关推荐
### Java使用POI包与JXL包操作Excel的实践心得 #### 一、引言 在实际工作中,经常需要处理Excel文件,特别是在企业级应用中,Excel作为一种常用的数据存储和交换格式,其重要性不言而喻。Java作为一款流行的企业级...
在学习POI接口时,可以参考`xssf使用心得.xls`和`hssf使用心得.xls`这两个文件,它们可能包含了实际操作的示例和作者的经验总结,有助于进一步理解和实践。 总之,Apache POI的HSSF和XSSF接口为Java开发者提供了...
本篇文章将基于“Java操作excel编程后心得”这一主题,深入探讨使用Apache POI库进行Excel处理的关键知识点。 Apache POI是Apache软件基金会的一个开源项目,专门用于读取和写入Microsoft Office格式的文件,包括...
本文将深入探讨如何使用Primefaces的DataExporter组件将数据导出为Excel格式,并通过Apache POI库进行后续的加工处理,以实现更高级的功能。 首先,Primefaces的DataExporter是一个非常方便的工具,它允许开发者将...
个人整理的POI解析EXCEL常用API详解 里面包括我在使用过程中的一些心得
4. **poi使用总结.txt**:这是作者使用Apache POI的一些心得体会,可能包含了他们在实际开发中遇到的问题和解决方案。对于正在使用或计划使用POI的人来说,这是一种宝贵的经验分享。 5. **poi pom编写.txt**:在...
本篇文章将详细介绍如何在JSP中使用Apache POI实现Excel文件的导入与导出,并分享相关的学习心得。 **一、导入Excel到JSP** 1. **依赖引入**:首先,你需要在项目的`pom.xml`或`build.gradle`文件中添加Apache POI...
下面是一个简单的示例代码,演示了如何使用 POI 创建一个包含两个工作表的 Excel 文件,并在其中一个工作表的第一行插入数据: ```java import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi...
不过,你可以利用Java的其他库,如Apache POI,或者像示例中那样使用原生的Excel应用程序接口(API)来实现。以下是一个使用原生Excel API进行打印的简单示例: ```java public void printExcel(String path) { ...
2. **POI读取EXCEL教程.doc、POI使用方法表.doc、Java用poi读取excel文件.doc、java的POI操作Excel文件.doc** - POI是Apache的一个开源项目,用于处理Microsoft Office格式的文件,如Excel。这些文档提供了使用Java...
Java是一种广泛使用的面向对象的编程语言,以其跨平台、高性能和丰富的类库而闻名。这份压缩包中的资源全面覆盖了Java的学习和应用,包括学习资料、面试题、DOS命令、设计模式以及Excel技巧和Java学习笔记。让我们...
可能涉及到Apache POI库的使用以及Excel文件格式的处理。 10. **RDD:基于内存的集群计算容错抽象.html**:RDD(弹性分布式数据集)是Apache Spark的核心概念,是一种可容错的分布式内存数据结构。文件可能阐述了...