【poi xlsx报错】使用POI创建xlsx无法打开
如果使用的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文件的时候,会报错打不开


代码如下:
package com.it.poiTest; import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException; import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class CreateWorkBook {
public static void main(String[] args) {
//可以表示xls和xlsx格式文件的类
XSSFWorkbook workbook = new XSSFWorkbook();
try {
FileOutputStream out = new FileOutputStream("createWorkBook.xlsx");
workbook.write(out);
out.close();
System.out.println("createWorkBook success");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} }
}
报错是因为,微软offine自己创建一个新的xlsx的时候,会默认的创建三个新的sheet,工作簿.而我们使用程序创建的xlsx默认不会,因此需要我们自己新建的时候,也创建一个sheet,这样就不会错了。
代码改良如下:
package com.it.poiTest; import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException; import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class CreateWorkBook {
public static void main(String[] args) {
//可以表示xls和xlsx格式文件的类
XSSFWorkbook workbook = new XSSFWorkbook();
try {
//新创建的xls需要新创建新的工作簿,offine默认创建的时候会默认生成三个sheet
Sheet sheet = workbook.createSheet("first sheet");
FileOutputStream out = new FileOutputStream("createWorkBook.xlsx");
workbook.write(out);
out.close();
System.out.println("createWorkBook success");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} }
}
【poi xlsx报错】使用POI创建xlsx无法打开的更多相关文章
- VMware报错“原因: 未能锁定文件”,打开失败
原文:http://jingyan.baidu.com/article/425e69e6bf64dbbe15fc16fe.html VMware打开复制的虚拟机,报错“原因: 未能锁定文件”,打开失败 ...
- NPOI追加内容到xlsx报错,用Epplus往excle xlsx追加数据
问题的现象就是,只要不修改xlsx,一直写入或者再次写入xlsx,追加内容都是不会有问题的.但是只要你修改了xlsx,用excle2010或者2007修改了xlsx的内容里面的列宽,或者行高,或者进行 ...
- Sybase ASE安装过程报错,无法创建数据库设备[AM fork() failed]
今天同事要搭建一套测试环境,安装开发版的SYBASE ASE 15.03 Windows平台下的,发现安装过程中到了创建数据库设备的环节就开始报错了,报错信息如下: 03/24/14 09:31:44 ...
- 关于在ssm下创建项目使用阿里巴巴下的druid数据库报错,出现无法创建连接的原因
报错原因:外部jdbc.driver使用原生jdbc驱动jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql:///yonghedb?charact ...
- 【原创】大叔问题定位分享(5)Kafka客户端报错SocketException: Too many open files 打开的文件过多
kafka0.8.1 一 问题 10月22号应用系统忽然报错: [2014/12/22 11:52:32.738]java.net.SocketException: 打开的文件过多 [2014/12/ ...
- sharepoint 2013 文档库 资源管理器打开报错 在文件资源管理器中打开此位置时遇到问题,将此网站添加到受信任站点列表,然后重试。
我们在使用sharepoint 2013的文档库或者资源库的时候,经常会需要用到使用“资源管理器”来管理文档,但是有时候,点击“使用资源管理器打开”,会提示如下错误: 在文件资源管理器中打开此位置时遇 ...
- 报错:Maven创建An internal error occurred during: "Retrieving archetypes:". Java heap space
在Eclipse中创建Maven的Web项目时出现错误:An internal error occurred during: "Retrieving archetypes:". J ...
- jmeter报错之“请在微信客户端打开链接”
这是一个还没解决的问题,这里纯粹记录自己思考的过程,后续给自己参考. 先说明情景:对微信公众号的一个接口进行调用跑通,后续可能需要压测(是的,仅仅是调通一个接口而已o(╥﹏╥)o) 1.按照我理解的正 ...
- @vue-cli3创建项目报错:ERROR command failed: npm install --loglevel error --registry=https://registry.npm.taobao.org --di
使用@vue-cli3时 在你感觉所以配置都搞好开始创建项目时,不停的报错,就是创建不成功 清npm缓存也不行 改淘宝镜像也不行 就快奔溃了,最后最终(其实我在凑150字,为了能发到首页给更多采坑的兄 ...
随机推荐
- [pdf.js]预览pdf时,中文名称乱码的问题
在项目中使用了pdf.js的方式预览pdf,但针对中文名称的时候会出现乱码,导致找不到该文件而出现错误. 解决办法 <script src="viewer.js" chars ...
- [Winform]一个简单的账户管理工具
最近一直觉得注册的账户越来越多,帐号密码神马的容易弄混.自己就折腾了一个简单的账户管理工具,其实实现也挺简单,将每个账户的密码及相关密码提示信息,经aes算法加密之后保存到数据库,当前登录用户可以查询 ...
- Swift学习笔记
swift 面向过程 数据结构 3.1 常量和变量 定义常量和变量 let a = 1 var b = 2 显式定义和隐式定义 无需指定强类型,编译器会自动根据初始值推断出其类型.与c#相似.如果在定 ...
- 繁华模拟赛 David与阶乘
#include<cstdio> #include<iostream> #include<algorithm> #include<cstring> #i ...
- 《CMake实践》第三部分的示例代码的错误
<CMake实践>的第三章,初试cmake - cmake的helloworld 中的 PROJECT (HELLO) SET(SRC_LIST main.c) MESSAGE(statu ...
- PHP5 Session 使用详解(一)
http协议是WEB服务器与客户端(浏览器)相互通信的协议,它是一种无状态协议.所谓无 状态,指的是不会维护http请求数据,http请求是独立的,不持久的.而越来越复杂的WEB应用,需要保存一些用户 ...
- search in 2d matrix and serach minimum in rotated array
import java.io.*; import java.lang.reflect.Array; import java.util.Arrays; import java.util.Collecti ...
- VS2010调用Com组件
Com组件开发过程中用的不多,资料也不多,故记录开发Com组件中的部分问题. 在这一篇文章里,讲解了如何使用VS2010创建Com组件.现在基于该文章创建的Com组件接口,创建VC++项目来调用该接口 ...
- Populating Next Right Pointers in Each Node
这题代码简单,不过不容易想到. void connect(TreeLinkNode *root) { if (root == nullptr ||root->left==nullptr)retu ...
- PHP声明
1. <!DOCTYPE> 声明位于文档中的最前面的位置,处于 <html> 标签之前.2. 此标签可告知浏览器文档使用哪种 HTML 或 XHTML 规范. <!DOC ...