如果使用的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默认创建的时候会默认生成三个sheet
16             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

【poi xlsx报错】使用POI创建xlsx无法打开相关推荐

  1. POI在sax模式下读取xlsx报错 Characters larger than 4 bytes are not supported解决办法

    使用的POI版本为3.14 在sax模式下读取一个20万行的xlsx报错:org.apache.xmlbeans.XmlException: java.io.CharConversionExcepti ...

  2. linux poi只有一列,poi linux 报错

    当前位置:我的异常网» 热门搜索 » poi linux 报错 poi linux 报错 www.myexceptions.net  网友分享于:2013-12-10   搜索量:135次 场景:小弟 ...

  3. 解决WAS报错SRVE0207E: servlet 创建了未捕获到的初始化异常

    解决WAS报错SRVE0207E: servlet 创建了未捕获到的初始化异常 参考文章: (1)解决WAS报错SRVE0207E: servlet 创建了未捕获到的初始化异常 (2)https:// ...

  4. 解决报错MMC无法创建管理单元

    win10的操作系统,想再装一个win7的操作系统,可是管理工具--Hyper-V管理器,就看到Hyper-V管理器界面上的报错"MMC无法创建管理单元",试了网上查到的一些方法, ...

  5. 打开网页报错:net::ERR_CONTENT_LENGTH_MISMATCH,网页打开时显示不全,需要刷新几次才行

    打开网页报错:net::ERR_CONTENT_LENGTH_MISMATCH,网页打开时显示不全,需要刷新几次才行. 检查nginx配置无问题.(网上有其他解决方案:ngnix的缓存目录proxy_ ...

  6. VS报错:fatal error LNK1104: 无法打开文件“kernel32.lib”解决办法

    VS报错:fatal error LNK1104: 无法打开文件"kernel32.lib"解决办法 问题所在 解决方案一 解决方案二 问题所在 我使用VS是运行Fortran程序 ...

  7. EasyExcel导出xlsx报错 Invalid column index (256). Allowable column range for BIFF8

    工作中遇到导出xlsx格式的excel文件,有600多列.根据报错提示只能支持256列搜索到的原因及解决方案如下 原因:HSSFWorkbook类只能生成Excel最多256列数据 HSSFWorkb ...

  8. java poi 导入报错,Cannot get a NUMERIC value from a STRING cell

    背景:在使用java的poi导入excel文件时,报错:Cannot get a NUMERIC value from a STRING cell,大致的意思就是不能从字符串的单元格获取到Number ...

  9. R语言加载xlsx报错错误: JAVA_HOME cannot be determined from the Registry解决方法

    错误: package or namespace load failed for 'xlsx':  loadNamespace()里算'rJava'时.onLoad失败了,详细内容:   调用: fu ...

最新文章

  1. 浙大网新实训项目介绍
  2. android10全局黑暗,传Android 11或加入自动切换全局黑暗模式功能
  3. 差异表达基因变化倍数_10.limma教程|差异表达统计相关理论
  4. 软件系统中的颗粒度_意式浓缩咖啡丨甘醇香浓余韵长,研磨的度与质千万别忽视...
  5. 43岁被裁员,200万年薪泡汤:这4件事你要尽早明白
  6. python requests返回值为200 但是text无内容_接口测试入门神器 - Requests
  7. 【Java从0到架构师】MyBatis - 连接池、分页_PageHelper
  8. T4 生成指定DB表实体
  9. 手写java通用curd_还在手写CRUD代码?这款开源框架助你解放双手!
  10. 对灰色按钮克星的屏蔽
  11. 常用xshell5命令
  12. ds90ub934 i2c 配置_TI ds90ub954 芯片调试简单总结
  13. 我为什么读博, 以及我为什么不读博?这是个问题!
  14. loadrunner录制脚本时无法打开IE浏览器
  15. 数据库恢复时出现诸如“设备激活错误
  16. 十三、JavaScript ajax请求
  17. springboot项目中redis客户端(Jedis、Lettuce、Redisson)
  18. Component(组件)的创建
  19. python入门指南 许半仙txt百度云-《漩涡》TXT全本 百度云网盘下载 by就不告诉你...
  20. Camera1 源码解析系列(五)—— Camera1 takePicture() 流程解析

热门文章

  1. boost::callable_traits添加member右值引用的测试程序
  2. 基于Boost::beast模块的同步WebSocket服务器
  3. Boost:双图bimap与lambda表达式的测试程序
  4. VTK:可视化之HanoiIntermediate
  5. OpenCV使用Shi-Tomasi方法检测拐角的实例(附完整代码)
  6. OpenCV基本mat重建的实例(附完整代码)
  7. OpenCV使用G-API实现面部美化算法
  8. OpenGL使用链表进行顺序独立的透明度
  9. c++ 树的先序、中序和后序的非递归实现(附完整源码)
  10. C语言程序的内存四区模型