当前位置: 首页 > 知识库问答 >
问题:

使用 Apache POI 创建新工作表会删除所有现有工作表

阎坚成
2023-03-14

我尝试使用Apachepoi库将新工作表添加到现有的excel文件中,如下面的代码所示。

FileOutputStream fileOut = new FileOutputStream(new File(BASE_PATH+outputFile));

            Workbook wb = new XSSFWorkbook();
            Sheet sheet = wb.createSheet("Splitted Rules");

            Set<String> tags = outputRules.keySet();
            int i = 0;
            for (String tag : tags) {
                List<String> rules = outputRules.get(tag);
                for (String rule : rules) {
                    Row row = sheet.createRow(i++);
                    row.createCell(0).setCellValue(tag);
                    row.createCell(1).setCellValue(rule);
                }
            }

            wb.write(fileOut);
            fileOut.close();
            wb.close();`

问题是文件中的所有工作表都被删除,只有新工作表存在。

这是什么问题?

共有1个答案

百里雅珺
2023-03-14

评论已经暗示了解决方案。

上面的代码创建一个新工作簿并覆盖任何现有文件。

如果要将工作表附加到现有工作簿,请使用WorkbookFactory.create方法(或带有适当参数的XSSFWorkbook构造函数)基于现有Excel文件创建工作簿。

 类似资料:
  • 我有一个Libreoffice Calc工作簿,有60多张纸,其中很多都有复制到它们的沉重图像。我想删除所有的图像与一个Calc基本宏。我尝试了以下操作,但失败了,出现一个基本的运行时错误,说明找不到 我需要一个代码,将工作像上面的一个,以删除所有的图像,从一个Calc工作簿的所有工作表。请帮帮我.

  • 我使用这段代码将工作簿中的每一张工作表复制到一个新的工作簿中,它工作得很好,但它颠倒了工作表的顺序,是否有任何办法阻止它这样做? 我正在复制所有的工作表,这样我就可以将它保存为不同的文件扩展名,这是我发现唯一有效的方法。

  • 我想用Python将我的数据帧导出到现有Excel工作表中的指定列,我尝试了不同的方法,但都不起作用。我已经将导出到一个名为“IR delta”的excel工作表中,现在我想在运行一些代码生成后,将导出到与相同的工作表中。但是,将创建excel工作表“IR delta 1”,而不是导出同一工作表“IR delta”。谁能帮忙吗?非常感谢! df1 df2 请看下面我的代码: 此时,我已将导出到ex

  • 我想在Sheet1之后将所有工作表从特定工作簿复制到当前工作簿 此代码正在复制所有工作表,包括隐藏的工作表。如何只复制可见的工作表?

  • addSheet([string $sheetName]); 示例 $config = [ 'path' => './filePath' ]; ​ $excel = new \Vtiful\Kernel\Excel($config); ​ // 此处会自动创建一个工作表 $fileObject = $excel->fileName("tutorial01.xlsx"); ​ $fileO

  • 我指的是这个例子。 它使用jsPlumb版本2.4.3,我想删除所有连接,但它不起作用,要删除所有连接,我正在使用这段代码。 要删除单个连接,我使用下面的代码,但它显示。分离不是一个函数。 jsplumb是否存在任何版本问题。 任何帮助将高度赞赏。谢啦