使用apache poi写入xlsm(Excel 2007)
我写了用于编写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的文档,不可能创buildmacros: http : //poi.apache.org/spreadsheet/limitations.html
但是可以读取和重写包含macros和apache的文件poi将安全地保留这些macros。
这里是一个例子:
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(); }
所创build的文件不会给你一个错误。
XLSM是带有macros的Excel电子表格,如果您的工作表中不需要macros,则也可以简单地使用.xlsx作为扩展。
你也可以通过HSSFWorkbook生成一个.xls文件(比如旧格式),Excel应该可以打开.xls。 只有这种方法的限制是.xls的行数限制为65k。
- 如何在Java,Apache POI中获取Excel单元格字段的字体样式?
- 无法使用spring + apache-poi上传excel文件
- 未报告的例外。 必须被逮捕或宣布被抛出
- 使用POI jar获取Excel SheetNames
- 使用Applet和Apache POI打开Excel文件
- 在使用POI将公式单元格插入到Excel中以及从文件系统打开/closures时如何摆脱“想要将更改保存到”Test.xlsx“
- 如何使用Java将Excel(2003和2007版本)文件导入到MySQL?
- Apache POI XSSFPivotTable setDefaultSubtotal
- Servlet只读取Excel文件的前两行