使用EasyPoi库实现Excel多Sheet页导出功能的示例

使用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);
// 添加第二个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;
    }
}
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页导出功能的示例_知途无界
  1. 导入必要的类:需要导入EasyPoi相关的类以及其他辅助类(如WorkbookFileOutputStream等)。
  2. 创建Workbook对象:使用ExcelExportUtil.exportExcel方法创建包含第一个Sheet页的Workbook对象。
  3. 添加更多Sheet页
    • 创建新的ExcelExportEntity对象并设置Sheet名称。
    • 准备该Sheet页的数据。
    • 使用EasyPoi提供的API将数据写入新的Sheet中。
  4. 写入文件:最后,通过文件输出流将Workbook内容写入磁盘上的Excel文件。
  5. 数据模拟方法getSheet1Data()getSheet2Data()方法分别用于模拟两个Sheet页的数据。

运行上述代码后,将生成一个名为MultiSheetExcel.xlsx的Excel文件,其中包含两个Sheet页,每个Sheet页有不同的数据。确保在运行前将EasyPoi库添加到项目的依赖中。

© 版权声明
THE END
喜欢就点个赞,支持一下吧!
点赞40 分享
Sometimes you have to be your own hero.
有时候必须做自己的英雄
评论 抢沙发
头像
欢迎您留下评论!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容