我正在尝试将一些数据添加到我用copyFileNIO(fromFile,toFile)方法创建的已经存在的文件中。要将数据添加到已经存在的文件中,我将使用以下代码块:
try {
copyFileNIO(fromFile, toFile);
System.out.println("Copy file is done.");
// Creating file object of existing excel file
File xlsxFile = new File(toFile);
System.out.println("ok");
// Creating input stream
InputStream inputStream = new FileInputStream(xlsxFile);
System.out.println("okkk");
// Creating workbook from input stream
Workbook wb = WorkbookFactory.create(inputStream);
System.out.println("okkkk");
// Reading first sheet of excel file
Sheet sheet = wb.getSheetAt(0);
// Getting age cell of first row from the sheet
Cell cell = sheet.getRow(1).getCell(3);
// Updating the cell value with new data
cell.setCellValue(30);
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("Copy file is done.");
}然而,工作簿给出了错误,我也尝试了XSSF它不工作。我不知道是什么原因造成的。您可以看到ambda$7的例外:
at application.Sbt.lambda$7(Sbt.java:492) -> which leads Workbook wb = WorkbookFactory.create(inputStream);我在代码中添加了一些System.out.println :这些方法的输出如下
复制文件已经完成。好的例外..。
我该如何解决这个问题?谢谢
我确认我的文件存在并且补丁是正确的。将输入流和工作簿更改为->工作簿wb =WorkbookFactory.create(新文件(ToFile));仍然存在相同的错误
完全错误消息和堆栈跟踪
at org.apache.poi.poifs.filesystem.FileMagic.valueOf(FileMagic.java:177)
at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:309)
at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:277)
at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:255)
at application.Sbt.lambda$7(Sbt.java:491)Apache -> 5.2.3
发布于 2022-12-04 03:00:31
在代码的第492行中调用WorkbookFactory.create()方法时,它似乎正在抛出异常。这意味着传递给create()方法的输入文件有问题。造成此错误的最常见原因是输入文件不是有效的Excel文件。
您可以尝试解决以下几种不同的问题:
确保toFile变量指向可由WorkbookFactory.create()方法读取的有效Excel文件。您可以通过检查文件的路径和文件名并验证它是否正确来做到这一点。
尝试使用另一种方法读取Excel文件。您可以尝试使用WorkbookFactory.create()方法,而不是使用WorkbookFactory.load()方法,该方法允许您指定一个InputStream对象而不是一个InputStream。如果输入文件不是WorkbookFactory.create()所期望的确切格式,则此方法可能会更加宽容。
如果输入文件不是有效的Excel文件,请尝试使用不同的文件。如果该文件是使用copyFileNIO()方法创建的,请确保fromFile变量指向有效的fromFile文件。
如果继续出现问题,可以尝试捕获由WorkbookFactory.create()方法引发的异常并打印其堆栈跟踪。这可以为您提供更多关于导致错误的原因的信息,并帮助您调试问题。
https://stackoverflow.com/questions/74672526
复制相似问题