博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【poi xlsx报错】使用POI创建xlsx无法打开
阅读量:6989 次
发布时间:2019-06-27

本文共 2332 字,大约阅读时间需要 7 分钟。

如果使用的XSSFWorkbook创建的xls,打开的时候会有这样的提示:

 

这样 XSSFWorkbook 和HSSFWorkbook的区别。

 

    • HSSF - 提供读写Microsoft Excel XLS格式档案的功能。

    • XSSF - 提供读写Microsoft Excel OOXML XLSX格式档案的功能。

    • HWPF - 提供读写Microsoft Word DOC97格式档案的功能。

    • XWPF - 提供读写Microsoft Word DOC2003格式档案的功能。

    • HSLF - 提供读写Microsoft PowerPoint格式档案的功能。

    • HDGF - 提供读Microsoft Visio格式档案的功能。

    • HPBF - 提供读Microsoft Publisher格式档案的功能。

    • HSMF - 提供读Microsoft Outlook格式档案的功能。

 

 

使用POI创建一个新的xlsx,提示创建成功,但是打开xlsx文件的时候,会报错打不开

 

 

代码如下:

1 package com.it.poiTest; 2  3 import java.io.FileNotFoundException; 4 import java.io.FileOutputStream; 5 import java.io.IOException; 6  7 import org.apache.poi.ss.usermodel.Sheet; 8 import org.apache.poi.xssf.usermodel.XSSFWorkbook; 9 10 public class CreateWorkBook {11     public static void main(String[] args) {12         //可以表示xls和xlsx格式文件的类13         XSSFWorkbook  workbook = new XSSFWorkbook();14         try {15             FileOutputStream out = new FileOutputStream("createWorkBook.xlsx");16             workbook.write(out);17             out.close();18             System.out.println("createWorkBook success");19         } catch (FileNotFoundException e) {20             e.printStackTrace();21         } catch (IOException e) {22             e.printStackTrace();23         }24         25         26     }27 }
View Code

 

报错是因为,微软offine自己创建一个新的xlsx的时候,会默认的创建三个新的sheet,工作簿.而我们使用程序创建的xlsx默认不会,因此需要我们自己新建的时候,也创建一个sheet,这样就不会错了。

代码改良如下:

1 package com.it.poiTest; 2  3 import java.io.FileNotFoundException; 4 import java.io.FileOutputStream; 5 import java.io.IOException; 6  7 import org.apache.poi.ss.usermodel.Sheet; 8 import org.apache.poi.xssf.usermodel.XSSFWorkbook; 9 10 public class CreateWorkBook {11     public static void main(String[] args) {12         //可以表示xls和xlsx格式文件的类13         XSSFWorkbook  workbook = new XSSFWorkbook();14         try {15             //新创建的xls需要新创建新的工作簿,offine默认创建的时候会默认生成三个sheet16             Sheet sheet = workbook.createSheet("first sheet");17             FileOutputStream out = new FileOutputStream("createWorkBook.xlsx");18             workbook.write(out);19             out.close();20             System.out.println("createWorkBook success");21         } catch (FileNotFoundException e) {22             e.printStackTrace();23         } catch (IOException e) {24             e.printStackTrace();25         }26         27         28     }29 }
View Code

 

转载地址:http://qzhpl.baihongyu.com/

你可能感兴趣的文章
分布式事务:两阶段提交与三阶段提交
查看>>
linux deepin升级内核后,vmware需要gcc编译器
查看>>
针对IE6\7\8\9\10浏览器的CSS hack大全详解
查看>>
网站检测空链、死链工具(Xenu)
查看>>
Java Web学习总结(5)——HttpServletResponse对象详解
查看>>
Myeclipse常用快捷键
查看>>
热备份路由协议(HSRP)与生成树协议(TCP)
查看>>
C++应用程序性能优化(二)——C++对象模型
查看>>
smarty 中一些方法的使用
查看>>
大型网站技术架构(五)网站高可用架构
查看>>
《简明 Python 教程》笔记-----基础知识
查看>>
Maven学习总结(五)——聚合与继承
查看>>
LNMP架构 源码安装nginx+mysql+php+memcache+论坛
查看>>
Linux实用工具
查看>>
Spring学习总结(4)——Spring AOP教程
查看>>
通过JDBC向数据库中存储&读取Blob数据
查看>>
数据类型转换
查看>>
java 贪婪算法—找零钱
查看>>
服务(2)====一个lamp的脚本以及基于lamp安装wordpress
查看>>
DNS配置
查看>>