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

网站建设策划公司教育行业手机wap网站

网站建设策划公司,教育行业手机wap网站,番禺市桥网站建设,完整网站开发需要多久起因: 最近需要用到excel导出功能,使用EasyExcel可以快速实现导出,又需要优雅的对EasyExcel进行封装,在实现自己的导出功能时又可以制定一定的规则,让其他同事方便使用,最近研究了下网上的常规写法,站在巨人的肩上重新添加了自己的思路,供大家参考,有任何问题请多指教…起因: 最近需要用到excel导出功能,使用EasyExcel可以快速实现导出,又需要优雅的对EasyExcel进行封装,在实现自己的导出功能时又可以制定一定的规则,让其他同事方便使用,最近研究了下网上的常规写法,站在巨人的肩上重新添加了自己的思路,供大家参考,有任何问题请多指教 痛点: 1、导出代码写在业务中,调用不统一且代码层次混乱 2、数据库查询的数据远多于对象中定义的数据,导出时默认导出了不想要的数据 3、相同的对象,在导出时需要根据不同条件进行设置不同的Excel表头字段,又不想定义多个导出对象 4、导出时如果设置过某个属性的表头宽度,优先按照设置的宽度导出,如果未设置,希望表头宽度有个默认值,而不是挤压在一起 5、excel需要导出大数据,都在一个sheet页中查看卡顿 6、导出的数据是数据库字符,查看excel人员看不懂,需要做数据转化 如果你有以上痛点问题,可以继续啦;如果没有也可以看看我的封装思路,还请各位高手不吝赐教,这里非常感谢 雪孤城的这篇文章 给了我很大的启发和参考 1. 工具类 1.1 EasyExcelUtil封装类 package cn.well.cloud.core.util.excel;import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.write.builder.ExcelWriterSheetBuilder; import com.alibaba.excel.write.metadata.WriteSheet; import lombok.extern.slf4j.Slf4j; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes;import javax.servlet.http.HttpServletResponse; import java.io.*; import java.util.*;/*** @Description: Easyexcel工具类封装及表格自动列宽设置* @Author: jiawei* @Date: 2023/7/26*/ @Slf4j public class EasyExcelUtil {/*** 每个sheet的容量,即超过60000时就会把数据分sheet*/private static final int PAGE_SIZE = 60000;/*** 无过滤字段的导出excel* @param data 需要导出的数据集* @param fileName 需要导出的excel名* @param excelClass 需要导出的excel表头实体* @return* @author jiawei* @since 2023/7/27 下午1:39*/public static void exportByExcel(List? data, String fileName, Class? excelClass){exportByExcel(data, fileName, excelClass, AbstractEasyExcel.getExcludeColumnFieldNames());}/*** 自定义过滤字段的导出excel* @param data 需要导出的数据集* @param fileName 需要导出的excel名* @param excelClass 需要导出的excel表头实体* @param excludeColumnFieldNames 需要过滤的字段集合* @return * @author jiawei* @since 2023/7/27 下午1:41*/public static void exportByExcel(List? data, String fileName, Class? excelClass, CollectionString excludeColumnFieldNames){try {ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();HttpServletResponse response = servletRequestAttributes.getResponse();long exportStartTime = System.currentTimeMillis();;log.info("报表导出Size: " + data.size() + "条。");// 把查询到的数据按设置的sheet的容量进行切割List? extends List? lists = SplitList.splitList(data, PAGE_SIZE);// 设置响应头AbstractEasyExcel.setHead(response, fileName + DateUtil.format(new Date(), DatePattern.PURE_DATETIME_PATTERN));// 浏览器访问url直接下载文件的方式ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream(), excelClass).registerWriteHandler(AbstractEasyExcel.formatExcel()).registerWriteHandler(new AbstractEasyExcel.ExcelWidthStyleStrategy()).includeColumnFieldNames(AbstractEasyExcel.getIncludeColumnFiledNames(excelClass)).excludeColumnFieldNames(excludeColumnFieldNames).build();ExcelWriterSheetBuilder excelWriterSheetBuilder;WriteSheet writeSheet;if(ObjectUtil.hasNull(lists)){log.info("未查询到要导出的数据,导出终止");return;}for (int i = 1; i = lists.size(); ++i) {excelWriterSheetBuilder = new ExcelWriterSheetBuilder(excelWriter);excelWriterSheetBuilder.sheetNo(i).sheetName("sheet" + i);writeSheet = excelWriterSheetBuilder.build();excelWriter.write(lists.get(i - 1), writeSheet);}// 必须要finish才会写入,不finish只会创建empty的文件excelWriter.finish();log.info("报表导出结束时间:" + new Date() + ";导出耗时: " + (System.currentTimeMillis() - exportStartTime) + "ms");} catch (IOException e) {e.printStackTrace();}} }1.2AbstractEasyExcel EasyExcel的基础封装,包含响应头设置,Excel的格式设置,根据实体设置需要导出的字段,设置需要过滤的实体中字段(字符串模式和lambda表达获取get方法引用的属性+连续方法调用模式),设置头部单元格宽度 AbstractEasyExcel package cn.well.cloud.core.util.excel;import cn.hutool.core.util.StrUtil; import com.alibaba.excel.metadata.Head; import com.alibaba.excel.metadata.data.WriteCellData; import com.alibaba.excel.write.metadata.holder.WriteSheetHolder; import com.alibaba.excel.write.metadata.style.WriteCellStyle; import
http://www.hkea.cn/news/14414465/

相关文章:

  • 响站怎么建设网站无锡做推广的网站
  • 雷军做的网站单位网站建设汇报材料
  • 衡水网站建设最新报价外包工是临时工吗
  • 网站内做营销活动使用工具西安网站设计制作多少钱
  • 优质高职院建设网站品牌推广的目的和意义
  • 网站访问大小做游戏视频网站用什么程序好
  • 重庆网站seo分析哈尔滨做网站的
  • 清远网站开发oto网站开发
  • 镇赉县做网站的wordpress中文目录下
  • 如何制作自己的网站图?wordpress站内链接
  • 宝安大型商城网站建设网站开发的背景和意义
  • 山东省建设部网站官网摄像机怎么在自己家网站做直播
  • 网站进行规划与设计网络设计是啥
  • 网站建站东莞网站建设比较好的公司
  • phpnow 搭建本地网站有的网站打不开是什么原因呢
  • 4399页游网站网站与网页 主页的概念及它们的区别
  • 免费用手机做网站app开发商城
  • 济南营销型网站建设团队福州专业建站
  • 常德网站建设设计上海高端室内设计事务所
  • 网站建设用什么视频播放器北京丰台网站优化
  • ui设计网站建设是什么意思系统网
  • 企业网站seo公司郑州网站设计制作
  • html网站模仿企业管理咨询是干什么的
  • 小语种网站怎么做手机网站 扁平化趋势
  • 企业邮箱注册需要什么材料wordpress 博客主题 seo
  • 涉县移动网站建设报价企业网址怎么申请
  • 免费用手机建立网站深圳商业网站建设系统
  • 光谷网站建设公司邯郸做紧固件网站
  • 珠海网站建设网络有限公司企业整合营销
  • 网站开发如何赚钱公司网站引导页