Java通过模板导出excel
时间: 2023-09-05 11:10:05 浏览: 145
Java通过模板导出Excel可以使用Apache POI和Jxls两种方式。
- Apache POI
Apache POI是一个用于读写Microsoft Office格式文件的Java库。通过POI,可以使用Java代码读取、创建和修改Excel文件、Word文档和PowerPoint演示文稿等Microsoft Office格式文件。
使用POI导出Excel需要先创建Excel模板,然后在Java代码中读取模板文件,根据数据填充模板,最后将填充后的数据写入新的Excel文件。
- Jxls
Jxls是一个用于将Java数据导出到Excel、Word和PDF等格式文件的开源Java库。Jxls提供了一种基于Excel模板的数据填充方式,可以通过Java对象、Map或List等数据源填充Excel模板,并将填充后的数据写入新的Excel文件。
使用Jxls导出Excel需要先创建Excel模板,然后在Java代码中读取模板文件,根据数据填充模板,最后将填充后的数据写入新的Excel文件。
下面是使用Apache POI和Jxls两种方式导出Excel的示例代码:
- 使用Apache POI导出Excel
// 导出Excel模板
public void exportExcelTemplate(String templateFilePath, String destFilePath) throws Exception {
InputStream is = new FileInputStream(templateFilePath);
Workbook workbook = WorkbookFactory.create(is);
Sheet sheet = workbook.getSheetAt(0);
// 在模板中填充数据
// ...
OutputStream os = new FileOutputStream(destFilePath);
workbook.write(os);
os.close();
is.close();
}
// 导出Excel数据
public void exportExcelData(String templateFilePath, String destFilePath, List<Map<String, Object>> dataList) throws Exception {
InputStream is = new FileInputStream(templateFilePath);
Workbook workbook = WorkbookFactory.create(is);
Sheet sheet = workbook.getSheetAt(0);
// 在模板中填充数据
for (int i = 0; i < dataList.size(); i++) {
Row row = sheet.createRow(i + 1);
Map<String, Object> data = dataList.get(i);
row.createCell(0).setCellValue(data.get("name").toString());
row.createCell(1).setCellValue(data.get("age").toString());
// ...
}
OutputStream os = new FileOutputStream(destFilePath);
workbook.write(os);
os.close();
is.close();
}
- 使用Jxls导出Excel
// 导出Excel模板
public void exportExcelTemplate(String templateFilePath, String destFilePath) throws Exception {
InputStream is = new FileInputStream(templateFilePath);
OutputStream os = new FileOutputStream(destFilePath);
Context context = new Context();
JxlsHelper.getInstance().processTemplate(is, os, context);
os.close();
is.close();
}
// 导出Excel数据
public void exportExcelData(String templateFilePath, String destFilePath, List<Map<String, Object>> dataList) throws Exception {
InputStream is = new FileInputStream(templateFilePath);
OutputStream os = new FileOutputStream(destFilePath);
Context context = new Context();
context.putVar("dataList", dataList);
JxlsHelper.getInstance().processTemplate(is, os, context);
os.close();
is.close();
}
以上是两种方式导出Excel的示例代码,其中使用Jxls导出Excel需要在项目中添加jxls和jxls-poi依赖。
相关推荐


















