使用EasyPoi库实现多Sheet页导出Excel文件的功能非常方便。下面是一个简单的示例代码,展示如何创建一个包含多个Sheet页的Excel文件:
import cn.afterturn.easypoi.excel.ExcelExportUtil;import cn.afterturn.easypoi.excel.entity.ExportParams;import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;import org.apache.poi.ss.usermodel.Workbook;import java.io.FileOutputStream;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;public class MultiSheetExcelExport {public static void main(String[] args) {try {// 创建Workbook对象Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("多Sheet页示例", "Sheet1"),getSheet1Data(), ExcelType.XSSF);// 添加第二个SheetExcelExportEntity sheet2Entity = new ExcelExportEntity();sheet2Entity.setSheetName("Sheet2");List<Map<String, Object>> sheet2Data = getSheet2Data();workbook.createSheet("Sheet2");ExcelExportUtil.exportExcel(sheet2Entity, sheet2Data, new FileOutputStream("MultiSheetExcel.xlsx"), workbook);// 将生成的Excel文件写入到磁盘FileOutputStream fos = new FileOutputStream("MultiSheetExcel.xlsx");workbook.write(fos);fos.close();workbook.close();System.out.println("Excel文件导出成功!");} catch (Exception e) {e.printStackTrace();}}// 模拟Sheet1的数据private static List<Map<String, Object>> getSheet1Data() {List<Map<String, Object>> list = new ArrayList<>();Map<String, Object> map = new HashMap<>();map.put("name", "张三");map.put("age", 20);list.add(map);map = new HashMap<>();map.put("name", "李四");map.put("age", 25);list.add(map);return list;}// 模拟Sheet2的数据private static List<Map<String, Object>> getSheet2Data() {List<Map<String, Object>> list = new ArrayList<>();Map<String, Object> map = new HashMap<>();map.put("product", "苹果");map.put("price", 5.5);list.add(map);map = new HashMap<>();map.put("product", "香蕉");map.put("price", 3.2);list.add(map);return list;}}import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.entity.ExportParams; import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; import org.apache.poi.ss.usermodel.Workbook; import java.io.FileOutputStream; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class MultiSheetExcelExport { public static void main(String[] args) { try { // 创建Workbook对象 Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("多Sheet页示例", "Sheet1"), getSheet1Data(), ExcelType.XSSF); // 添加第二个Sheet ExcelExportEntity sheet2Entity = new ExcelExportEntity(); sheet2Entity.setSheetName("Sheet2"); List<Map<String, Object>> sheet2Data = getSheet2Data(); workbook.createSheet("Sheet2"); ExcelExportUtil.exportExcel(sheet2Entity, sheet2Data, new FileOutputStream("MultiSheetExcel.xlsx"), workbook); // 将生成的Excel文件写入到磁盘 FileOutputStream fos = new FileOutputStream("MultiSheetExcel.xlsx"); workbook.write(fos); fos.close(); workbook.close(); System.out.println("Excel文件导出成功!"); } catch (Exception e) { e.printStackTrace(); } } // 模拟Sheet1的数据 private static List<Map<String, Object>> getSheet1Data() { List<Map<String, Object>> list = new ArrayList<>(); Map<String, Object> map = new HashMap<>(); map.put("name", "张三"); map.put("age", 20); list.add(map); map = new HashMap<>(); map.put("name", "李四"); map.put("age", 25); list.add(map); return list; } // 模拟Sheet2的数据 private static List<Map<String, Object>> getSheet2Data() { List<Map<String, Object>> list = new ArrayList<>(); Map<String, Object> map = new HashMap<>(); map.put("product", "苹果"); map.put("price", 5.5); list.add(map); map = new HashMap<>(); map.put("product", "香蕉"); map.put("price", 3.2); list.add(map); return list; } }import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.entity.ExportParams; import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; import org.apache.poi.ss.usermodel.Workbook; import java.io.FileOutputStream; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class MultiSheetExcelExport { public static void main(String[] args) { try { // 创建Workbook对象 Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("多Sheet页示例", "Sheet1"), getSheet1Data(), ExcelType.XSSF); // 添加第二个Sheet ExcelExportEntity sheet2Entity = new ExcelExportEntity(); sheet2Entity.setSheetName("Sheet2"); List<Map<String, Object>> sheet2Data = getSheet2Data(); workbook.createSheet("Sheet2"); ExcelExportUtil.exportExcel(sheet2Entity, sheet2Data, new FileOutputStream("MultiSheetExcel.xlsx"), workbook); // 将生成的Excel文件写入到磁盘 FileOutputStream fos = new FileOutputStream("MultiSheetExcel.xlsx"); workbook.write(fos); fos.close(); workbook.close(); System.out.println("Excel文件导出成功!"); } catch (Exception e) { e.printStackTrace(); } } // 模拟Sheet1的数据 private static List<Map<String, Object>> getSheet1Data() { List<Map<String, Object>> list = new ArrayList<>(); Map<String, Object> map = new HashMap<>(); map.put("name", "张三"); map.put("age", 20); list.add(map); map = new HashMap<>(); map.put("name", "李四"); map.put("age", 25); list.add(map); return list; } // 模拟Sheet2的数据 private static List<Map<String, Object>> getSheet2Data() { List<Map<String, Object>> list = new ArrayList<>(); Map<String, Object> map = new HashMap<>(); map.put("product", "苹果"); map.put("price", 5.5); list.add(map); map = new HashMap<>(); map.put("product", "香蕉"); map.put("price", 3.2); list.add(map); return list; } }
代码说明:
![图片[1]_使用EasyPoi库实现Excel多Sheet页导出功能的示例_知途无界](https://zhituwujie.com/wp-content/uploads/2025/03/d2b5ca33bd20250309110246.png)
- 导入必要的类:需要导入EasyPoi相关的类以及其他辅助类(如
Workbook
,FileOutputStream
等)。 - 创建Workbook对象:使用
ExcelExportUtil.exportExcel
方法创建包含第一个Sheet页的Workbook对象。 - 添加更多Sheet页:
- 创建新的
ExcelExportEntity
对象并设置Sheet名称。 - 准备该Sheet页的数据。
- 使用EasyPoi提供的API将数据写入新的Sheet中。
- 创建新的
- 写入文件:最后,通过文件输出流将Workbook内容写入磁盘上的Excel文件。
- 数据模拟方法:
getSheet1Data()
和getSheet2Data()
方法分别用于模拟两个Sheet页的数据。
运行上述代码后,将生成一个名为MultiSheetExcel.xlsx
的Excel文件,其中包含两个Sheet页,每个Sheet页有不同的数据。确保在运行前将EasyPoi库添加到项目的依赖中。
© 版权声明
文中内容均来源于公开资料,受限于信息的时效性和复杂性,可能存在误差或遗漏。我们已尽力确保内容的准确性,但对于因信息变更或错误导致的任何后果,本站不承担任何责任。如需引用本文内容,请注明出处并尊重原作者的版权。
THE END
暂无评论内容