cma*_*982 7 excel poi-hssf apache-poi xssf excel-template
我发现以下代码从现有模板创建excel表格,并使用格式并向其添加数据并将其保存到新文件
POIFSFileSystem fs = new POIFSFileSystem(
new FileInputStream("template.xls"));
HSSFWorkbook wb = new HSSFWorkbook(fs, true);
Will load an xls, preserving its structure (macros included). You can then modify it,
HSSFSheet sheet1 = wb.getSheet("Data"); ...
Run Code Online (Sandbox Code Playgroud)
然后保存它.
FileOutputStream fileOut = new FileOutputStream("new.xls");
wb.write(fileOut);
fileOut.close();
Run Code Online (Sandbox Code Playgroud)
这绝对没问题.但我的问题是我现在正在处理新版本的excel.所以我需要开发一个类似的代码来处理新版本的模板.有人可以建议我怎么做?我尝试将HSSWorkbook更改为XSSFWorkbook.但是XSSFWorkbook没有允许我传递布尔值的构造函数.也.当我尝试它时,它会复制数据,但带有数据的行不会保留模板所具有的列的格式.
这应该可以正常工作(尽管最好使用最新版本的POI来修复所有错误):
Workbook wb = new XSSFWorkbook( OPCPackage.open("template.xlsx") );
Sheet sheet = wb.getSheetAt(0);
// Make changes to the sheet
sheet.getRow(2).getCell(0).setCellValue("Changed value"); // For example
// All done
FileOutputStream fileOut = new FileOutputStream("new.xls");
wb.write(fileOut);
fileOut.close();
Run Code Online (Sandbox Code Playgroud)
如果您对接口进行编码,那么您只需在构造函数中交换HSSF和XSSF,并使代码适用于两种格式
| 归档时间: |
|
| 查看次数: |
24559 次 |
| 最近记录: |