首页 > 解决方案 > POI保存失败

问题描述

无论我如何打开 xlsx,无论是填充文件还是空白文件,使用下面的代码都会缩短下面的第二个错误。我的 pom 依赖项在下面第三个。我不知所措。我要降级依赖项吗?HSSF 代码工作正常。

    try {
        in = currentFile.getInputStream();
        try {
            pkg00 = OPCPackage.open(in);
        } catch (InvalidFormatException e) {
            e.printStackTrace();
        }
        currentWb = new XSSFWorkbook(pkg00);  //need to close with OPCPackage pkg00.close()
        //currentWb = (XSSFWorkbook) WorkbookFactory.create(in);
        currentSheet = currentWb.getSheetAt(0);
        cleanWb = new XSSFWorkbook();
        cleanSheet = cleanWb.createSheet();
    } catch (IOException e) {
        e.printStackTrace();
    }

保存代码:

try {
    String path = createPath(markingDir,currentName,fileNum,null,null).toString();
    pkg00.save(new FileOutputStream(new File(createPath(markingDir,currentName,fileNum,null,null).toString())));
} catch (IOException e) {
    e.printStackTrace();
}
//createSerialFileName(markingDir, currentName, fileNum, cleanWb, null);
fileNum++;
filesProcessed++;

2020 年 7 月 1 日星期三 15:30:35 EDT 出现意外错误(类型=内部服务器错误,状态=500)。java.nio.charset.spi.CharsetProvider:未找到提供程序 com.spire.ms.charsets.CharsetProvider java.util.ServiceConfigurationError:java.nio.charset.spi.CharsetProvider:未找到提供程序 com.spire.ms.charsets.CharsetProvider

<dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>4.1.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>4.1.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml-schemas</artifactId>
            <version>4.1.2</version>
        </dependency>

标签: apache-poixssf

解决方案


我移到了异质的“.ss”。4.12 中的工作簿和工作表,它保存了 wop。作为一个可能有用的注释,在我的特定数据情况下,带有空行的 xlsx 甚至不会添加空行,而是会跳过行增量,因此要准确复制,在我的情况下,您需要跟踪行号和位置缺少增量显式插入一行。这对解析很重要,因为它在列中的第一个空白单元格上中断。第五。


推荐阅读