将Excel模板与Apache POI一起使用

Jak*_*ake 19 java excel apache-poi

基本问题:如何加载Excel模板以与POI一起使用,然后将其保存到XLS文件中?

编辑:

答案是:

FileInputStream inputStream = new FileInputStream(new File(templateFile));
Workbook workbook = new HSSFWorkbook(inputStream);
Run Code Online (Sandbox Code Playgroud)

(只需将模板作为工作簿加载,然后将工作簿作为XLS文件写入其他位置.)

Bri*_*new 16

您是否尝试使用POI将其作为标准.xls加载,修改然后保存?

这是我用于在POI生成的.xls中插入宏的方法.我使用宏创建文件(诚然为.xls),然后将其加载到我的应用程序中,填充数据并保存为新创建的.xls.一切都很好.


PAT*_*ume 13

您可以直接加载将充当模板的.xls,并对其进行修改.

POIFSFileSystem fs = new POIFSFileSystem(
                new FileInputStream("template.xls"));
HSSFWorkbook wb = new  HSSFWorkbook(fs, true);
Run Code Online (Sandbox Code Playgroud)

将加载xls,保留其结构(包括宏).然后你可以修改它,

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)

希望这可以帮助.


小智 5

您还可以使用内部模板作为资源.

InputStream fis = ChartSample.class.getResourceAsStream("/templates.xls");
HSSFWorkbook wb = new HSSFWorkbook(fis);        
fis.close();
HSSFSheet sh = wb.getSheetAt(0); 
//Here you go
Run Code Online (Sandbox Code Playgroud)

除此之外:

out = new FileOutputStream("./new.xls");
wb.write(out);
out.close();
Run Code Online (Sandbox Code Playgroud)