Java Spring在上传到服务器(org.apache.poi)时会损坏Excel(xlsx,xls)文件
我正在使用spring上传Excel文件,但apache POI无法读取该文件,因为该文件已损坏或格式不同。但这只有在我上传Excel文件时才会发生。Excel文件在上传之前就打开了。Iam使用POI版本3.17 这是我的密码 HTMLJava Spring在上传到服务器(org.apache.poi)时会损坏Excel(xlsx,xls)文件,java,excel,spring-boot,apache-poi,thymeleaf,Java,Excel,Spring Boot,Apache Poi,Thymeleaf,我正在使用spring上传Excel文件,但apache POI无法读取该文件,因为该文件已损坏或格式不同。但这只有在我上传Excel文件时才会发生。Excel文件在上传之前就打开了。Iam使用POI版本3.17 这是我的密码 HTML 代码的问题是您试图读取刚刚创建的空文件。但是您应该阅读多部分文件来创建工作簿 FileInputStream fis = new FileInputStream(fileLocation); // fis created with new file
代码的问题是您试图读取刚刚创建的空文件。但是您应该阅读
多部分文件来创建工作簿
FileInputStream fis = new FileInputStream(fileLocation); // fis created with new file location
Workbook workbook = WorkbookFactory.create(fis); //creating a workbook with an empty file
如果您试图从工作簿中读取,可以直接使用多部分文件
对象并完成它。无需创建新的文件
像这样做
Workbook workbook = WorkbookFactory.create(file.getInputStream());
然后继续处理文件。如果你想把文件保存在某个地方,你可以这样做
try (FileOutputStream outputStream = new FileOutputStream("/path/to/your/file/hello.xlsx")) {
workbook.write(outputStream);
}
为什么文件outputstream和文件inputstream指向新文件?您正在读取一个不存在的文件。不是春天把文件弄乱了
Workbook workbook = WorkbookFactory.create(file.getInputStream());
try (FileOutputStream outputStream = new FileOutputStream("/path/to/your/file/hello.xlsx")) {
workbook.write(outputStream);
}