poi导出兼容xls和xlsx时报错XmlValueDisconnectedException
poi版本:3.9
xlsx: 在导出多sheet页时、即使用cloneSheet方法在设置sheetName就会报错:
org.apache.xmlbeans.impl.values.XmlValueDisconnectedException
代码:
// 写样式信息
wb.cloneSheet(0);
wb.setSheetName(2, "<style>");
由于我们项目中直接更换poi版本需要代码改动量过大、所以只能找源码处理。于是翻了官方文档、各种资料后,解决方案如下:
这段代码是XSSFWorkBook中cloneSheet()方法 左边是3.9版本的源码 右侧是修改后的
至于替换源码
从 poi官网 下载对应版本的源码 根据上图路径找到XSSFWorkBook
在idea里面项目中新建一个包和路径同名、把XSSFWorkBook复制过去、然后修改代码保存 然后clean install 即可以得到编译好的class文件 然后去jar包里面替换掉相应的class文件
----------------------------------------------------------------------------------------
以上是上周遇到的一个问题,但是昨天又遇到这个神奇的异常 XmlValueDisconnectedException
是在sheet.createRow()时出现的问题
解决方案:
XSSFSheet.createRow()方法中有一段代码如下:
if(prev!= null){CTRow ctRow = prev.getCTRow();/ ctRow.set(CTRow.Factory.newInstance()); * / <---将被删除Iterator it = prev.iterator();while(it.hasNext()){it.next();it.remove();}}
删除注释掉的代码即可
以上问题都是从此网站找到的解决方案
如果大家不是必须使用3.9版本的poi 尽量更新poi版本即可不需要调整源码。很无奈需要找到源码的问题,但是也有这样的机会可以多看看源码实现,虽然看完还是一脸懵~~~~
poi导出兼容xls和xlsx时报错XmlValueDisconnectedException相关推荐
- java 兼容excel_Java解析Excel工具类(兼容xls和xlsx)
依赖jar org.apache.poi poi-ooxml 4.0.1 ExcelUtils.java package javax.utils; import java.io.File; impor ...
- Java解析Excel工具类(兼容xls和xlsx)
依赖jar <dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml< ...
- Java实现Excel表格数据的导入(兼容xls与xlsx)
Java实现Excel表格数据的导入(兼容xls与xlsx) 目录 依赖 代码 注意点 目录 依赖 <!-- 添加POI的依赖用于Excel的操作 --><dependency> ...
- java实现读取excel表格中的数据,兼容xls和xlsx
前言 利用 java 实现读取 excel 表格中的数据,兼容 xls 与 xlsx 格式,不用额外做区分,写不同的实现方法. 引入的依赖包 <dependency><groupId ...
- java poi对excel xls和xlsx格式文件导入导出
一)poi简介 Apache POI项目是用于基于Microsoft的OLE 2复合文档格式开发文件格式的纯Java端口的主项目. 官网POI API地址:https://poi.apache.org ...
- 前端页面导出为xls、xlsx格式的excel文件
html页面导出为excel文件 excel有两种文件格式,一种为xls,另一种为xlsx文件格式. 1.如果需要xls文件格式,并且会附带上传文件的格式和表格中的函数可选择导出为xls文件,但是此文 ...
- JavaExcel工具类(兼容xls和xlsx)
最近用上了导入excel表格处理保存到后台数据库的功能!利用的是org.apache.poi进行处理 示例代码: import org.apache.poi.hssf.usermodel.HSSFWo ...
- java poi导出兼容office
导出xls 构建workbook时,用HSSFWorkbook; 导出xlsx 构建workbook时,用SXSSFWorkbook.(切忌不要用XSSFWorkbook,害人害己)
- 利用 java 实现读取 excel 表格中的数据,兼容xls与xlsx以及csv格式
1.引入依赖包 <!--xls文件操作--><dependency><groupId>org.apache.poi</groupId><artif ...
最新文章
- shell 排序函数
- 双线性内插怎么缩小_汗蒸桶怎么选择才是最好的
- 分享Java面试中的几个重要基础问题
- js动态创建样式style
- CodeForces 895 B. XK Segments 二分查找
- 鸿蒙OS加持!华为MatePad2系列将搭载骁龙888/麒麟9000芯
- JS截取字符串substr 和 substring方法的区别
- MyBatis 使用 foreach 批量插入
- JavaScript如何计算两个日期之间的时间差?
- python 使用GDAL实现栅格tif转矢量shp
- js实现网页在线聊天功能(四)
- SSL P2133 腾讯大战360 题目
- 6岁女孩出口之乎者也 用《论语》典故批评妈妈
- 【HTML5期末大作业】制作一个简单HTML我的公益校园安全网页(HTML+CSS+JS)
- 下载微信账单用于分析
- GitHub 狂飙 30K+star 面试现场, 专为程序员面试打造, 现已开源可下载
- VS2010出现重复的代码项原因及解决方式
- 2020-08《信息资源管理 02378》真卷(独家文字版),圈定章节考点+统计真题分布
- krnln.fnr和shell.fne_电脑开机显示failedtoloadkernllibrary什么意思啊
- 神经网络的基本原理,神经网络算法三大类
热门文章
- 【ftrack聊天室】又来大佬了!VR的流程搭建还可以这么玩?!
- OBS窗口捕获黑屏的解决办法
- React Developer Tools Chrome浏览器扩展一直提示“This page doesn’t appear to be using React.“最新解决办法
- C 语言:#elif 指令
- jquery实现表情图添加与发布功能
- 修改SpringBoot日志级别
- android之几种定时器实现
- three.js实现火焰效果
- greg名字寓意_Ah Greg Reinacker给我发送了我之前提到的Java报价,实际上是他说1我个人bel...
- 安卓手机如何设置静态IP?