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

标签 java apache-poi

我尝试使用 Apache poi 库将新工作表添加到现有的 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();`

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

这是什么问题?

最佳答案

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

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

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

关于java - 使用 Apache POI 创建新工作表会删除所有现有工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28537933/

相关文章:

java - 如何在 Android Studio 项目中包含 .jar 库

excel - 如何在使用 Apache POI 打开 Excel 时修复错误。错误说 "We found a problem with some content in xyz.xlsm. Do you want..."?

java - Apache POI : ${my_placeholder} is treated as three different runs

java - 如何使用 Apache-POI 获取 Excel 工作表的默认列宽?

java - 序列化 Java 对象时如何解决 StreamCorruptedException?

Java CryptUnprotectData Windows WiFi 密码

java - Gradle 未找到依赖项

java - 如何读取文本文件并存储在类 vector 中 - Android

java - Apache POI : getNumMergedRegions

apache-poi - 如何通过Apache poi设置word文件的全局字体?