【问题标题】:Selenium Webdriver - Java - Exception on trying to write data in Excel using Apache POISelenium Webdriver - Java - 尝试使用 Apache POI 在 Excel 中写入数据时出现异常
【发布时间】:2023-03-07 20:05:01
【问题描述】:

Jar Files

我正在尝试向现有的 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 并检查该文件的一致性(验证或解压缩)

标签: java excel selenium


【解决方案1】:

无法读取 org.apache.poi.openxml4j 处的 zip 入口源

您的代码似乎是正确的,但根据例外情况,您使用的 Apache POI jar 中似乎存在一些问题,它可能已损坏。尝试下载最新的,解压缩并再次使用。确保你已经添加了所有这些 jar

【讨论】:

  • 我使用了最新的 Apache POI jar,但仍然遇到同样的问题。在我运行脚本后,excel 表被损坏了
  • 编辑了我的答案,确保你已经添加了所有这些 jar。还要检查您正在使用的excel文件是否能够正常打开它
  • 我使用的是 poi-3.15 jar,我应该使用 3.10 而不是 3.15。请指教
  • 仍然遇到同样的异常。我附上了我用作附件的 Jar 文件(请参阅 Jar 文件)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-13
相关资源
最近更新 更多