[英]write to xlsm (Excel 2007) using apache poi
我編寫了用於編寫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();
}
謝謝
根據Apache POI的文檔,無法創建宏: http : //poi.apache.org/spreadsheet/limitations.html
但是,可以讀取和重寫包含宏的文件,api 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();
}
創建的文件不會給您帶來錯誤。
XLSM是帶有宏的Excel電子表格,如果您的工作表中不需要宏,您也可以簡單地使用.xlsx作為擴展。
您也可以通過HSSFWorkbook生成.xls文件(即舊格式),Excel應該可以打開.xls就好了。 這種方法的唯一限制是.xls的行數限制為65k。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.