我编写了用于编写xlsm的java文件(Excel 2007) .
使用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();
}
谢谢
2 回答
XLSM是带有宏的Excel电子表格,如果您的工作表中不需要宏,您也可以简单地使用.xlsx作为扩展 .
您也可以通过HSSFWorkbook生成.xls文件(即旧格式),Excel应该可以打开.xls就好了 . 这种方法的唯一限制是.xls的行数限制为65k .
根据Apache POI的文档,无法创建宏:http://poi.apache.org/spreadsheet/limitations.html
但是,可以读取和重写包含宏的文件,api poi将安全地保留宏 .
这是一个例子:
创建的文件不会给您带来错误 .