当前位置: 首页 > wzjs >正文

沈阳网站建设 房小二大数据分析营销平台

沈阳网站建设 房小二,大数据分析营销平台,域名代备案平台,做网站难吗?需求:需要在导出 excel时,合并单元格自定义头信息(动态生成),然后才是字段列表头即导出数据。 EasyExcel - 使用table去写入:https://easyexcel.opensource.alibaba.com/docs/current/quickstart/write#%E4%BD%BF%E7%94%A8table%E…

需求:需要在导出 excel时,合并单元格自定义头信息(动态生成),然后才是字段列表头即导出数据。

EasyExcel - 使用table去写入:https://easyexcel.opensource.alibaba.com/docs/current/quickstart/write#%E4%BD%BF%E7%94%A8table%E5%8E%BB%E5%86%99%E5%85%A5

一、代码实现

1、查询导出数据

1.1 导出实体类

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.converters.localdatetime.LocalDateTimeStringConverter;
import lombok.Data;import java.io.Serializable;
import java.time.LocalDateTime;/*** 用户信息 导出DTO*/
@Data
@ExcelIgnoreUnannotated
public class UserExportExcelDTO implements Serializable {private static final long serialVersionUID = -5255117385546252447L;/*** 用户ID*/@ExcelIgnoreprivate Long userId;/*** 用户名*/@ExcelProperty(value = "用户名")private String username;/*** 年龄*/@ExcelProperty(value = "年龄")private Integer age;/*** 电话号码*/@ExcelProperty(value = "电话号码")private String phone;/*** 昵称*/@ExcelProperty(value = "昵称")private String nickname;/*** 姓名*/@ExcelProperty(value = "姓名")private String name;/*** 创建时间* 使用 converter或者 @DateTimeFormat格式化时间,如果两者同时使用,@DateTimeFormat优先级高*/@ExcelProperty(value = "创建时间", converter = LocalDateTimeStringConverter.class) // yyyy-MM-dd HH:mm:ss@DateTimeFormat("yyyy年MM月dd日")private LocalDateTime createTime;}

1.2 查询导出数据方法

    @Overridepublic List<UserExportExcelDTO> listExportExcelData(UserPageQueryRequest pageRequest) {pageRequest.setCurrentPage(1L);pageRequest.setPageSize((long) Integer.MAX_VALUE);BasePageResult<UserPageDTO> basePageResult = pageQuery(pageRequest);if(!basePageResult.isSuccess()){return Collections.EMPTY_LIST;}return basePageResult.getPageList().stream().map(userPageDTO -> {UserExportExcelDTO exportExcelDTO = new UserExportExcelDTO();BeanUtils.copyProperties(userPageDTO, exportExcelDTO);return exportExcelDTO;}).collect(Collectors.toList());}

2、EasyExcel使用 table写入

    /*** 用户导出接口** @param pageRequest 分页查询请求体*/@SneakyThrows@ApiOperation(value = "用户导出接口")@GetMapping("/exportExcel")public void exportExcel(HttpServletResponse response, @RequestBody UserPageQueryRequest pageRequest) {response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");response.setCharacterEncoding("utf-8");String fileName = URLEncoder.encode("用户信息", StandardCharsets.UTF_8.name()).replaceAll("\\+", "%20");response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");// 查询导出数据List<UserExportExcelDTO> exportExcelDataList = userService.listExportExcelData(pageRequest);// 自定义头信息StringBuilder headName = new StringBuilder();LocalDateTime startTime = pageRequest.getCreateTimeStart();LocalDateTime endTime = pageRequest.getCreateTimeEnd();if (startTime != null && endTime != null) {String startTimeStr = LocalDateTimeUtil.format(startTime, DatePattern.CHINESE_DATE_PATTERN);String endTimeStr = LocalDateTimeUtil.format(endTime, DatePattern.CHINESE_DATE_PATTERN);headName.append(startTimeStr).append("至").append(endTimeStr);}headName.append("时间段的用户信息");List<List<String>> headList = new ArrayList<>();List<String> head = new ArrayList<>();head.add(headName.toString());headList.add(head);/*** 创建 ExcelWriter* 1.创建写入的工作表,不需要表头。命名为"sheet1"。*/ExcelWriter excelWriter = null;try {excelWriter = EasyExcelFactory.write(response.getOutputStream()).build();} catch (IOException e) {log.error("导出车辆在线率统计异常:e=", e);}WriteSheet writeSheet = EasyExcel.writerSheet("sheet1").needHead(Boolean.FALSE).build();/*** 2.创建并写入表格数据,设置表头为 headList,需要表头。* tableNo:表格序号,从0开始。* OnceAbsoluteMergeStrategy:创建一个合并单元格策略。*/WriteTable writeTable1 = EasyExcel.writerTable(0).head(headList).registerWriteHandler(new OnceAbsoluteMergeStrategy(0, 2, 0, 5)).needHead(Boolean.TRUE).build();// 写入空数据到 writeSheetexcelWriter.write(new ArrayList<>(), writeSheet, writeTable1);/*** 3.创建写入表格,基于AnysCarOfflineStatisticsVo类定义表头,需要表头。* writerTable(3):因为 writeTable1从0开始,并合并了 3行,所以 writeTable2是从第4个行(tableNo = 3)开始写入。* SimpleColumnWidthStyleStrategy:设置列宽策略*/WriteTable writeTable2 = EasyExcel.writerTable(3).head(UserExportExcelDTO.class).registerWriteHandler(new SimpleColumnWidthStyleStrategy(25)).relativeHeadRowIndex(2).needHead(Boolean.TRUE).build();// 写入导出数据到 writeSheetexcelWriter.write(exportExcelDataList, writeSheet, writeTable2);excelWriter.finish();}

3、导出结果

在这里插入图片描述

– 求知若饥,虚心若愚。

http://www.dtcms.com/wzjs/154208.html

相关文章:

  • 如果自己弄网站深圳推广公司有哪些
  • 大良营销网站建设市场黄石seo诊断
  • 无锡做网站365caiyi西安百度推广代理商
  • 哈尔滨网站建设制作哪家便宜厦门人才网
  • 兰州做网站价格新手学seo
  • 网站制作滚动图片怎么做百度贴吧官网首页
  • 网站根目录是什么意思广东seo外包服务
  • 网站概要设计模板国际羽联最新排名
  • 网站建设免费软件短视频培训课程
  • 佛山购物网站建设fifa世界排名最新
  • 外国网站建站seosem顾问
  • 营销网站售后调查系统网站怎么优化到首页
  • wordpress 敏感词过滤搜索引擎优化报告
  • 微信小程序开发教程 下载seo搜索排名
  • 网站建设入账时进那个会计科目aso优化
  • wordpress更改ip后登录密码快速优化工具
  • 小程序模板多少钱一套网站百度关键词seo排名优化
  • 祖庙高明网站建设营销页面
  • 抽奖怎么做网站营销策划有限公司经营范围
  • 网络网站建设办公电商的运营模式有几种
  • 私自做彩票网站代购犯法么微博今日热搜榜
  • 网站博客自媒体轻松台州seo服务
  • 网站打开速度概念舆情监测
  • 怎么做英文垃圾网站互联网营销是什么
  • c++手机编程软件搜索引擎关键词seo优化公司
  • 网站建设摊销方法搜索软件排行榜前十名
  • 做网站销售有前景爱站seo
  • 广州专业网站建设企业网站seo设计
  • 网站链接数站长工具查询入口
  • 做服装批发的网站哪个比较好seo综合查询接口