江津区建设工程交易中心网站织梦和wordpress哪个
,wordpress第三方支付前言 前面给大家介绍了动态表头的导入,这篇文章给大家介绍如何实现导出 前面给大家介绍了动态表头的导入,我们了解了如何通过EasyExcel灵活地读取结构不固定的Excel文件。这次,我们将目光转向数据导出——即如何将数据以Excel文件的形式输出…前言
前面给大家介绍了动态表头的导入,这篇文章给大家介绍如何实现导出
前面给大家介绍了动态表头的导入,我们了解了如何通过EasyExcel灵活地读取结构不固定的Excel文件。这次,我们将目光转向数据导出——即如何将数据以Excel文件的形式输出给用户。这在很多应用场景中都非常有用,比如报表生成、数据备份和迁移等。下面我将详细讲解如何在Spring Boot应用中使用EasyExcel来实现数据的导出功能。
首先先上EasyExcel的官网:EasyExcel官方文档 - 基于Java的Excel处理工具 | Easy Excel 官网
1. 添加依赖
首先,我们需要确保项目中已经包含了EasyExcel的依赖。如果你还没有添加,请打开
pom.xml
文件,并加入以下Maven依赖:<dependency><groupId>com.alibaba.easyexcel</groupId><artifactId>easyexcel</artifactId><version>2.2.3</version> </dependency>
请根据你的项目需求选择合适的版本号,通常建议使用最新稳定版。
2.实现
controller层
在Controller层中,我们定义了一个处理导出请求的API端点。该方法接收一个HTTP POST请求,并根据传入的参数(
DataFromVo
)调用服务层的方法来执行具体的导出逻辑。/*** 导出检查计划数据* @author zqx* @date 2023/12/6 17:48*/ @RestController @RequestMapping("/inspection") public class InspectionPlanController {@Autowiredprivate SiteInspectPlanHomeService siteInspectPlanHomeService;/*** 导出检查计划信息为Excel文件。** @param request HTTP请求对象,用于获取请求信息。* @param response HTTP响应对象,用于设置响应头和写出文件流。* @param dataFromVo 包含查询条件的数据传输对象。*/@PostMapping("/exportInspectionPlan")@ApiOperation(value = "导出检查计划信息", notes = "将检查计划信息导出为Excel文件")public void exportInspectionPlan(HttpServletRequest request, HttpServletResponse response, @RequestBody DataFromVo dataFromVo) {log.info("执行了POST请求");log.info("参数:{}", dataFromVo);siteInspectPlanHomeService.exportInspectionPlan(request, response, dataFromVo);} }
创建实体类
为了使EasyExcel能够正确地映射Java对象到Excel表格中的列,我们需要创建一个与Excel结构相匹配的实体类。这里我们使用
ExportPlanInformationVo
作为示例。/*** 导出信息对象* @Author zqx* @Date 2023/12/6 9:26*/ @Data @HeadRowHeight(30) // 设置头部行高 @ContentRowHeight(25) // 设置内容行高 @ColumnWidth(20) // 设置列宽 @HeadFontStyle(fontName = "宋体", fontHeightInPoints = 11) public class ExportPlanInformationVo implements Serializable {@ApiModelProperty("名称")@ExcelProperty("名称")private String planName;@ApiModelProperty("类型")@Dict(code = "inspectionType", fieldName = "inspectionTypeName")@ExcelProperty("类型")private String inspectionType;@ApiModelProperty("主题名称")@ExcelProperty("主题")private String themeName;@ApiModelProperty("计划起止时间")@ExcelProperty("计划起止时间")private String startEndTime;@ApiModelProperty("年度")@ExcelProperty("年度")private String inspectionYear;@ApiModelProperty("单位数量")@ExcelProperty("单位数量")private String orgNoCount;@ApiModelProperty("户数")@ExcelProperty("户数")private String taskNum;@ApiModelProperty("已完成户数")@ExcelProperty("已完成户数")private String completedNumber;@ApiModelProperty("完成率")@ExcelProperty("完成率")private String inspectionCompletionRate;@ApiModelProperty("超期状态")@ExcelProperty("超期状态")private String isItOverdue;@ApiModelProperty("状态")@Dict(code = "planStatus", fieldName = "planStatusName")@ExcelProperty("状态")private String planStatus;@ApiModelProperty("创建时间")@ExcelProperty("创建时间")private String createTime;@ApiModelProperty("结束日期")@ExcelIgnore // 忽略此字段不输出到Excel中private String endTime; }
Service 层
在Service层中,我们将具体实现导出逻辑。这个例子展示了如何准备要导出的数据,并通过EasyExcel库将其写入HTTP响应流中,以便用户可以下载生成的Excel文件。
@Service public class SiteInspectPlanHomeService {/*** 导出检查计划信息为Excel文件。** @param request HTTP请求对象,用于获取请求信息。* @param response HTTP响应对象,用于设置响应头和写出文件流。* @param dataFromVo 包含查询条件的数据传输对象。*/@Overridepublic void exportInspectionPlan(HttpServletRequest request, HttpServletResponse response, DataFromVo dataFromVo) {try {// 根据业务需求处理dataFromVo并获取要导出的数据列表List<ExportPlanInformationVo> planVos = prepareDataForExport(dataFromVo);// 给文件命名String fileName = "现场巡视计划报表";// 设置响应内容类型为Excel格式,并编码防止中文乱码问题response.setContentType("application/vnd.ms-excel");response.setCharacterEncoding("UTF-8");// 设置文件名并处理URL编码fileName = URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20");// 文件下载方式(附件下载还是在当前浏览器打开)response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");// 使用EasyExcel进行数据写入操作EasyExcel.write(response.getOutputStream(), ExportPlanInformationVo.class).sheet("现场巡视计划报表") // 指定工作表名称.doWrite(planVos); // 写入数据到Excel文件} catch (Exception e) {log.error("导出过程中出现错误 {}", e);throw new RuntimeException("导出失败,请稍后再试!");}}/*** 准备要导出的数据。** @param dataFromVo 查询条件* @return 要导出的数据列表*/private List<ExportPlanInformationVo> prepareDataForExport(DataFromVo dataFromVo) {// 这里需要根据你的业务逻辑去查询数据库或其它数据源,并转换成ExportPlanInformationVo列表// 示例代码:List<ExportPlanInformationVo> planVos = new ArrayList<>();// 填充数据...return planVos;} }
最后
上述代码段详细描述了如何在Spring Boot应用程序中集成EasyExcel以实现检查计划信息的导出功能。每个部分都包含了必要的注释和说明,确保开发者能够理解每一行代码的作用以及整个流程的工作原理。此外,还特别注意了对异常情况的处理,保证即使发生错误也能够给出适当的反馈信息。
相关文章:
英雄联盟怎么做直播网站网络推广平台排名 免费推广seo宁波seo网络推广软件系统 游网站建设方案内容网站显示搜索框 如何做优秀的视频网站设计模板王怎么下载字体 外贸做网站的好处微信公众平台推广方案 一个公网ip可以做几个网站wordpress站点错误 微网站的建设模板有哪些带数据库网站模板 高端的网站建设公司wordpress价格 沧州网站建设价格利用php做网站教程 公司网站运营维护单位怎么做免费网站如何让百度收录 网站外链建设可以提升网站网站建设结课论文 网站维护主要做什么学校网站 儿童 网站欣赏企业做一个网站的费用 wordpress5.0编辑器增强英文网站如何做seo 景区网站建设教程关于网站运营的问题 网站开发 技术维护网站搭建技术有哪些 小公司企业简介300字济南seo网站排名优化工具 网站变exe文件怎么做企业网站开发需要 旅游网站营销西安小程序开发公司 有谁可以做网站寄生虫郑州网站设计公司排名 延吉制作网站临潼区做网站的公司 住房和城乡建设部文化中心网站重庆网站推广人员 辽宁建设厅新网站免费wap建站 群团网站建设温州seo优化排名公司 十大旅游电子商务网站淘宝网站制作教程 宿州城市建设投资网站什么是网站开发工程师 上传视频网站源码iis7搭建网站 深圳万齐创享网站建设广西住房和城乡建设培训中心网站 限时抢购网站源码培训机构推广 建站系统搭建音乐网站成都 网站制作