gpt4 book ai didi

java - 使用 apache poi 写入 xlsm (Excel 2007)

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:34:35 31 4
gpt4 key购买 nike

我已经编写了用于编写 xlsm(Excel 2007) 的 java 文件。

使用Apache POI库,写xlsx文件成功。并且写入 xlsm 文件是成功的。但我无法打开 xlsm 文件,因为打开 xlsm 文件时出错。

使用 Apache POI Library 编写 xlsm 文件是否可行?

如果编写 xlsm 可行,请提供指南如何使用 Apache poi 库编写 xlsm 文件。

XSSFWorkbook workBook = new XSSFWorkbook();
XSSFSheet sheet = workBook.createSheet("Related_SRC");
String realName = "Test.xlsm";
File file = new File("C:\\sdpApp", realName);
try {
FileOutputStream fileOutput = new FileOutputStream(file);
workBook.write(fileOutput);
fileOutput.close();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}

谢谢

最佳答案

根据 Apache POI 的文档,无法创建宏:http://poi.apache.org/spreadsheet/limitations.html

但是可以读取和重写包含宏的文件,apache poi 将安全地保留宏。

这是一个例子:

String fileName = "C:\\new_file.xlsm";

try {

Workbook workbook;
workbook = new XSSFWorkbook(
OPCPackage.open("resources/template_with_macro.xlsm")
);

//DO STUF WITH WORKBOOK

FileOutputStream out = new FileOutputStream(new File(fileName));
workbook.write(out);
out.close();
System.out.println("xlsm created successfully..");

} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (InvalidFormatException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

创建的文件不会报错。

关于java - 使用 apache poi 写入 xlsm (Excel 2007),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18350178/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com