“Can‘t open workbook - unsupported file type: XML“

java开发,增删改查,涉及到导入excel时,有的excel导入失败提示"Can't open workbook - unsupported file type: XML"。着急赶工期,告诉客户先把excel另存为xls格式,再重新导入。现在有点空余时间,好好研究了下,解决了这个问题。直接上操作啊.

复制代码
import com.spire.xls.FileFormat;
import org.apache.poi.EmptyFileException;
import org.apache.poi.poifs.filesystem.FileMagic;
复制代码
//获取文件输入流
InputStream checkis = FileMagic.prepareToCheckMagic(file.getInputStream());
byte[] emptyFileCheck = new byte[1];
checkis.mark(emptyFileCheck.length);
if (checkis.read(emptyFileCheck) < emptyFileCheck.length) {
    throw new EmptyFileException();
} else {
    checkis.reset();
    FileMagic fm = FileMagic.valueOf(checkis);
   //开始判断文件是不是xml格式
    if (FileMagic.XML == fm) {
        com.spire.xls.Workbook workbook=new com.spire.xls.Workbook();
        workbook.loadFromXml(file.getInputStream());
        workbook.saveToFile(fileName, FileFormat.Version2013);
       //接下来开始处理导入excel文件
        ****
    }
}

参考了 poi读取excel报错Your InputStream was neither an OLE2 stream, nor an OOXML stream-CSDN博客

相关推荐
zfj3211 天前
排查java应用内存溢出的工具和方法
java·开发语言·jvm·内存溢出
历程里程碑1 天前
C++ 7vector:动态数组的终极指南
java·c语言·开发语言·数据结构·c++·算法
ss2731 天前
高并发读场景:写时复制容器(Copy-On-Write)
java·开发语言·rpc
一人の梅雨1 天前
淘宝商品视频接口深度解析:从视频加密解密到多端视频流重构
java·开发语言·python
是喵斯特ya1 天前
java反序列化漏洞解析+URLDNS利用链分析
java·安全
她说..1 天前
MySQL数据处理(增删改)
java·开发语言·数据库·mysql·java-ee
BD_Marathon1 天前
【JavaWeb】ServletContext_域对象相关API
java·开发语言
重生之后端学习1 天前
238. 除自身以外数组的乘积
java·数据结构·算法·leetcode·职场和发展·哈希算法
yaoxin5211231 天前
269. Java Stream API - Map-Filter-Reduce算法模型
java·python·算法