Java Apache poi特定Excel模板文件容量损坏

Java Apache poi特定Excel模板文件容量损坏,java,excel,apache-poi,Java,Excel,Apache Poi,我使用ApachePOI读取模板文件,在那里输入所需的值,然后创建一个具有不同名称的文件。但是,在我使用工作簿时,它与现有模板相同,但创建了不同的文件。(忽略值输入)模板文件为122KB,但新创建的文件为114KB。只有当我打开文件并保存它时,它才会变得相同。这是一个省略值输入的简单代码 public class Main { public static void main(String[] args) throws IOException { FileInputStream input

我使用ApachePOI读取模板文件,在那里输入所需的值,然后创建一个具有不同名称的文件。但是,在我使用工作簿时,它与现有模板相同,但创建了不同的文件。(忽略值输入)模板文件为122KB,但新创建的文件为114KB。只有当我打开文件并保存它时,它才会变得相同。这是一个省略值输入的简单代码

public class Main {
public static void main(String[] args) throws IOException {
    FileInputStream inputStream = null;
    FileOutputStream outputStream = null;
    XSSFWorkbook workbook = null;
    String templatePath = "C:/template.xlsx";
    String outputFilePath = "C:/";
    String outputFileName = "outputFile.xlsx";
    try {
        inputStream = new FileInputStream(templatePath);
        workbook = new XSSFWorkbook(inputStream);
        outputStream = new FileOutputStream(outputFilePath + outputFileName);
        workbook.write(outputStream);
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        workbook.close();
        outputStream.close();
        inputStream.close();
    }
}
}

-我试过的方法

  • 使用其他库
  • 使用HSSF、SSXSF而不是XSSF
  • 更改关闭顺序
  • 直接复制要读写的文件(files.copy)

其他Excel模板是正常的,但此文件是唯一的问题。

我假设您在Excel中收到某种错误消息,否则您不会询问。。。要检查新值之外的差异,可以解压缩文件并比较其xml内容。如果有可疑之处,可以使用编辑器修复该xml,然后将其压缩并测试。如果你知道罪犯,你可以在POI bugzilla提交一个bug。根据不同的压缩设置,可以选择不同的文件大小。