java 操作excel遇到的问题

1. BUG

1. Caused by: java.lang.ClassNotFoundException: org.apache.poi.ss.usermodel.Chart
解决: 看了下maven,引入的包有冲突 导致,更新后不再报此错误,另外包的版本最好保持一致


2.java.lang.IllegalArgumentException: InputStream of class class org.apache.commons.compress.archivers.zip.ZipArchiveInputStream is not implementing InputStreamStatistics.
java.lang.IllegalArgumentException: InputStream of class class org.apache.commons.compress.archivers.zip.ZipFile$1 is not implementing InputStreamStatistics.
	at org.apache.poi.openxml4j.util.ZipArchiveThresholdInputStream.<init>(ZipArchiveThresholdInputStream.java:65)
	at org.apache.poi.openxml4j.util.ZipSecureFile.getInputStream(ZipSecureFile.java:147)
	at org.apache.poi.openxml4j.util.ZipSecureFile.getInputStream(ZipSecureFile.java:34)
	at org.apache.poi.openxml4j.util.ZipFileZipEntrySource.getInputStream(ZipFileZipEntrySource.java:63)
	at org.apache.poi.xssf.streaming.SXSSFWorkbook.injectData(SXSSFWorkbook.java:408)
	at org.apache.poi.xssf.streaming.SXSSFWorkbook.write(SXSSFWorkbook.java:971)
	at SXSSFExcelUtil.main(SXSSFExcelUtil.java:45)

解决:

没能解决,大概率是依赖包的版本有问题, 使用poi3.14版本没有报这个错误

2. Excel

教程参考网址
示例

2.1 POI

Apache POI是一种流行的API,它允许程序员使用Java程序创建,修改和显示MS Office文件。这由Apache软件基金会开发使用Java分布式设计或修改Microsoft Office文件的开源库。它包含类和方法对用户输入数据或文件到MS Office文档进行解码。

2.2 Apache POI组件

Apache POI包含类和方法,来将MS Office所有OLE 2文档复合。此API组件的列表如下:

  1. POIFS (较差混淆技术实现文件系统) : 此组件是所有其他POI元件的基本因素。它被用来明确地读取不同的文件。
  2. HSSF (可怕的电子表格格式) : 它被用来读取和写入MS-Excel文件的xls格式。
  3. XSSF (xml格式) : 它是用于MS-Excel中XLSX文件格式。
  4. HPSF (可怕的属性设置格式) : 它用来提取MS-Office文件属性设置
  5. HWPF (可怕的字处理器格式) : 它是用来读取和写入MS-Word的文档扩展名的文件。
  6. XWPF (XML字处理器格式) : 它是用来读取和写入MS-Word的docx扩展名的文件。
  7. HSLF (可怕的幻灯片版式格式) : 它是用于读取,创建和编辑PowerPoint演示文稿。
  8. HDGF (可怕的图表格式) : 它包含类和方法为MS-Visio的二进制文件
  9. HPBF (可怕的出版商格式) : 它被用来读取和写入MS-Publisher文件。

3. 使用

  • 导入依赖
		<dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>3.7.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>3.7.0</version>
        </dependency>
  • 3种WorkBook

    • WordkBook:接口,后续操作都在其上进行, 相当于Excel工作簿,有下边三个子接口
    • XSSFWorkbook:2007版本(包含2007,1048576行,16384列)以后的扩展名为.xlsx使用该类,其最多可以有104万行
      HSSFWorkbook:2003版本(包含2003)以前的扩展名为.xls使用该类,行数有局限,最多65535行
    • SXSSFWorkbook:07的优化版本,相当于为其添加了缓存功能,可以对插入大批量的数据进行优化 (poi jar 3.8+)
      Workbook wb = new SXSSFWorkbook(5000);
      在生成Workbook 时给工作簿一个内存数据存在条数,这样一旦这个Workbook 中数据量超过5000就会写入到磁盘中,减少内存的使用量来提高速度和避免溢出。
  • 写入
    操作都类似

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值