【发布时间】:2023-03-07 20:05:01
【问题描述】:
我正在尝试向现有的 excel 写入一个值,但在尝试运行时却遇到了异常。有人可以指导一下吗
Exception in thread "main" java.io.IOException: Failed to read zip entry source
at org.apache.poi.openxml4j.opc.ZipPackage.<init>(ZipPackage.java:106)
at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:342)
at org.apache.poi.util.PackageHelper.open(PackageHelper.java:37)
at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:285)
at samplescripts.WriteExcel.main(WriteExcel.java:19)
Caused by: java.io.EOFException: Unexpected end of ZLIB input stream
at java.util.zip.InflaterInputStream.fill(Unknown Source)
at java.util.zip.InflaterInputStream.read(Unknown Source)
at java.util.zip.ZipInputStream.read(Unknown Source)
at org.apache.poi.openxml4j.util.ZipSecureFile$ThresholdInputStream.read(ZipSecureFile.java:213)
at java.io.FilterInputStream.read(Unknown Source)
at org.apache.poi.openxml4j.util.ZipInputStreamZipEntrySource$FakeZipEntry.<init>(ZipInputStreamZipEntrySource.java:132)
at org.apache.poi.openxml4j.util.ZipInputStreamZipEntrySource.<init>(ZipInputStreamZipEntrySource.java:56)
at org.apache.poi.openxml4j.opc.ZipPackage.<init>(ZipPackage.java:99)
... 4 more
下面是用到的代码
package samplescripts;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class WriteExcel {
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
File src=new File("C:\\Selenium\\ExcelData\\TestData.xlsx");
FileInputStream fis=new FileInputStream(src);
XSSFWorkbook wb=new XSSFWorkbook(fis);
XSSFSheet sheet1=wb.getSheetAt(0);
sheet1.getRow(0).createCell(2).setCellValue("Pass");
sheet1.getRow(1).createCell(2).setCellValue("Fail");
sheet1.getRow(2).createCell(2).setCellValue("14.12");
FileOutputStream fout=new FileOutputStream(src);
wb.write(fout);
wb.close();
}
}
【问题讨论】:
-
你用谷歌搜索了异常吗?你发现了什么?
-
尝试将 TestData.xlsx 重命名为 TestData.zip 并检查该文件的一致性(验证或解压缩)