首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将数据写入

将数据写入
EN

Stack Overflow用户
提问于 2022-12-04 02:55:23
回答 1查看 29关注 0票数 0

我正在尝试将一些数据添加到我用copyFileNIO(fromFile,toFile)方法创建的已经存在的文件中。要将数据添加到已经存在的文件中,我将使用以下代码块:

代码语言:javascript
复制
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的例外:

代码语言:javascript
复制
at application.Sbt.lambda$7(Sbt.java:492) -> which leads Workbook wb = WorkbookFactory.create(inputStream);

我在代码中添加了一些System.out.println :这些方法的输出如下

复制文件已经完成。好的例外..。

我该如何解决这个问题?谢谢

我确认我的文件存在并且补丁是正确的。将输入流和工作簿更改为->工作簿wb =WorkbookFactory.create(新文件(ToFile));仍然存在相同的错误

完全错误消息和堆栈跟踪

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

发布于 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()方法引发的异常并打印其堆栈跟踪。这可以为您提供更多关于导致错误的原因的信息,并帮助您调试问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74672526

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档