easyexcel导出excel 到浏览器,并设置第一行大标题

该代码示例展示了如何使用EasyExcel库从服务获取数据列表,然后构建并写入Excel表格,包括设置头部样式,定义表格头部数据,以及最终写入响应流并关闭写入器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

// 导出数据列表
List<YourDataModel> dataList = yourService.getDataList();

// 构建Excel表格
ExcelWriter writer = EasyExcel.write(response.getOutputStream()).build();

// 设置表格头部样式
WriteCellStyle headStyle = new WriteCellStyle();
headStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
WriteFont headFont = new WriteFont();
headFont.setFontHeightInPoints((short) 14);
headFont.setBold(true);
headStyle.setWriteFont(headFont);

// 构建表格头部数据
List<List<String>> headList = new ArrayList<>();
List<String> headTitleList = new ArrayList<>();
headTitleList.add("大标题");
headList.add(headTitleList);

// 写入表格头部
Sheet sheet = new Sheet(1, 0);
sheet.setClazz(YourDataModel.class);
sheet.setHead(headList);
sheet.setHeadStyle(headStyle);
writer.write(dataList, sheet);

// 关闭ExcelWriter
writer.finish();
EasyExcel 中,可以通过将实体类对象导出为 HttpServletResponse 的输出流,实现将 Excel 直接导出浏览器。同时,在导出Excel 中添加标题和时间,可以在数据导出之前手动添加这两行。 以下是一个示例,展示如何使用 EasyExcel 将实体类对象导出浏览器第一行添加标题,第二行添加时间: ```java import com.alibaba.excel.EasyExcel; import com.alibaba.excel.write.builder.ExcelWriterBuilder; import com.alibaba.excel.write.metadata.WriteSheet; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.Date; import java.util.List; public class ExcelExportExample { public static void exportToBrowser(HttpServletResponse response) { try { // 设置响应头,告诉浏览器返回的是 Excel 文件 response.setContentType("application/vnd.ms-excel"); response.setCharacterEncoding("utf-8"); // 设置导出的文件名 response.setHeader("Content-disposition", "attachment;filename=example.xlsx"); // 获取输出流 ServletOutputStream outputStream = response.getOutputStream(); // 准备数据 List<User> userList = createData(); // 导出数据 ExcelWriterBuilder writerBuilder = EasyExcel.write(outputStream, User.class); WriteSheet writeSheet = EasyExcel.writerSheet().build(); writerBuilder.file("example.xlsx").sheet().doWrite(userList); // 手动添加标题和时间 EasyExcelUtils.addTitleAndTime(outputStream); } catch (Exception e) { // 异常处理 } } private static List<User> createData() { List<User> userList = new ArrayList<>(); // 添加数据 return userList; } } class User { @com.alibaba.excel.annotation.ExcelProperty("姓名") private String name; @com.alibaba.excel.annotation.ExcelProperty("年龄") private int age; // 其他字段及对应的 getter 和 setter 方法 } class EasyExcelUtils { public static void addTitleAndTime(ServletOutputStream outputStream) { try { // 在第一行添加标题 List<String> titleRow = new ArrayList<>(); titleRow.add("姓名"); titleRow.add("年龄"); EasyExcel.write(outputStream).sheet().doWriteData(titleRow); // 在第二行添加时间 List<String> dateRow = new ArrayList<>(); dateRow.add(new Date().toString()); dateRow.add(""); EasyExcel.write(outputStream).sheet().doWriteData(dateRow); } catch (Exception e) { // 异常处理 } } } ``` 在上面的示例中,我们首先设置了 HttpServletResponse 的响应头,将返回的文件类型设为 Excel指定文件名。 然后,我们获取 HttpServletResponse 的输出流 ServletOutputStream,使用 EasyExcel 将实体类对象 userList 导出到输出流中。 接下来,我们调用 `EasyExcelUtils.addTitleAndTime` 方法,该方法会在输出流中手动添加标题和时间。 请注意,需要在实体类的字段上使用 `@com.alibaba.excel.annotation.ExcelProperty` 注解来标记字段对应的 Excel标题。 希望这可以帮助到您!如果还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值