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

个人备案网站建设方案书优化网站推广教程排名

个人备案网站建设方案书,优化网站推广教程排名,厦门网站j建设,精美ppt模板免费下载百度云背景 在使用easyexcel导出时,如果遇到一个模板中同时存在 一部分是实体类中的字段,另外部分是列表的字段,需要特殊处理一下,比如下面的模板: 这里面 user, addr 是实体类(或者map&#xff09…

背景

在使用easyexcel导出时,如果遇到一个模板中同时存在 一部分是实体类中的字段,另外部分是列表的字段,需要特殊处理一下,比如下面的模板:
在这里插入图片描述

这里面 useraddr 是实体类(或者map),extra是一个字符串,datadata1是两组列表数据。

准备数据的代码如下:

    private static Map<String, Object> getParams() {// 准备导出的数据User user = new User();user.setName("user");Map<String, Object> addr = new HashMap<>();addr.put("name", "addr");String extra = "extra";List<Data> dataList = new ArrayList<>();for (int i = 0; i < 10; i++) {Data data = new Data();data.setName("data" + i);data.setAge(i);dataList.add(data);}Map<String, Object> params = HashMap.newHashMap(16);params.put("user", user);params.put("addr", addr);params.put("extra", extra);params.put("data", dataList);params.put("data1", dataList);return params;}

问题

我们一开始的想法很简单,直接把这些参数打包丢到map里面,直接fill一次不就成功了,但是,实际上并没有成功,导出代码如下:

var params = getParams();
String templateFileName = "D:\\test.xlsx";String fileName = "D:\\test-res.xlsx";
try (ExcelWriter excelWriter = EasyExcel.write(fileName).withTemplate(templateFileName).build()) {WriteSheet writeSheet = EasyExcel.writerSheet().build();excelWriter.fill(params, writeSheet);
}

导出结果:
在这里插入图片描述

可以看到,除了没有前缀的的extra,所有带前缀的都导出失败了,仔细查阅文档后,发现这些需要用FillWrapper包装一下,为了方便使用,这里写了一个工具类,代码如下:

public static void export(String templateFileName, String outputFile, Map<String, Object> params){try (ExcelWriter excelWriter = EasyExcel.write(outputFile).withTemplate(templateFileName).build()) {WriteSheet writeSheet = EasyExcel.writerSheet().build();// 先把不带前缀的都fill进去excelWriter.fill(params, writeSheet);params.forEach((key, val) -> {// 基础类型都是不带前缀的,前面处理了,不再处理。if (ClassUtil.isBasicType(ClassUtil.getClass(val))) {return;}if (val instanceof Collection<?> collectionVal) {// 这里注意 入参用了forceNewRow 代表在写入list的时候不管list下面有没有空行 都会创建一行,然后下面的数据往后移动。默认 是false,会直接使用下一行,如果没有则创建。// forceNewRow 如果设置了true,有个缺点 就是他会把所有的数据都放到内存了,所以慎用// 简单的说 如果你的模板有list,且list不是最后一行,下面还有数据需要填充 就必须设置 forceNewRow=true 但是这个就会把所有数据放到内存 会很耗内存FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build();excelWriter.fill(new FillWrapper(key, collectionVal), fillConfig, writeSheet);}else {// bean/map 只能假装是个列表了excelWriter.fill(new FillWrapper(key, Collections.singleton(val)), writeSheet);}});}}

代码中的ClassUtilhutool

导出结果:
在这里插入图片描述
可以看到,几处都填充成功了。

补充

web环境下把导出方法的前俩参数直接改成对应的输出/输入流就行了。


文章转载自:
http://than.rbzd.cn
http://gangplough.rbzd.cn
http://impudent.rbzd.cn
http://eutherian.rbzd.cn
http://diplont.rbzd.cn
http://phosphocreatin.rbzd.cn
http://smyrna.rbzd.cn
http://hiver.rbzd.cn
http://encephalitis.rbzd.cn
http://loquat.rbzd.cn
http://kuroshio.rbzd.cn
http://midships.rbzd.cn
http://nullipara.rbzd.cn
http://myxovirus.rbzd.cn
http://censor.rbzd.cn
http://criticism.rbzd.cn
http://lobworm.rbzd.cn
http://hypereutectoid.rbzd.cn
http://interregna.rbzd.cn
http://propulsion.rbzd.cn
http://wfp.rbzd.cn
http://bruise.rbzd.cn
http://andromedotoxin.rbzd.cn
http://nds.rbzd.cn
http://hemispheroid.rbzd.cn
http://dipcoat.rbzd.cn
http://calceus.rbzd.cn
http://quai.rbzd.cn
http://strongyloid.rbzd.cn
http://clamlike.rbzd.cn
http://priss.rbzd.cn
http://hidage.rbzd.cn
http://pal.rbzd.cn
http://auriscopic.rbzd.cn
http://anencephalic.rbzd.cn
http://stratigrapher.rbzd.cn
http://twopence.rbzd.cn
http://slipcover.rbzd.cn
http://bakeshop.rbzd.cn
http://datal.rbzd.cn
http://saliency.rbzd.cn
http://syllabary.rbzd.cn
http://mathematization.rbzd.cn
http://detruncation.rbzd.cn
http://glabellum.rbzd.cn
http://senhorita.rbzd.cn
http://mephitic.rbzd.cn
http://fricative.rbzd.cn
http://vitreous.rbzd.cn
http://bibliography.rbzd.cn
http://curari.rbzd.cn
http://lassitude.rbzd.cn
http://promontoried.rbzd.cn
http://resedimentation.rbzd.cn
http://barnaby.rbzd.cn
http://ordure.rbzd.cn
http://temple.rbzd.cn
http://exorcism.rbzd.cn
http://coagulin.rbzd.cn
http://tug.rbzd.cn
http://ato.rbzd.cn
http://gladiola.rbzd.cn
http://wcc.rbzd.cn
http://alcoholometer.rbzd.cn
http://cantaloup.rbzd.cn
http://chishima.rbzd.cn
http://registered.rbzd.cn
http://bustling.rbzd.cn
http://megalomania.rbzd.cn
http://thymey.rbzd.cn
http://semiyearly.rbzd.cn
http://meany.rbzd.cn
http://bot.rbzd.cn
http://jow.rbzd.cn
http://fabled.rbzd.cn
http://sampan.rbzd.cn
http://reichsbank.rbzd.cn
http://pkunzip.rbzd.cn
http://kiangsu.rbzd.cn
http://petition.rbzd.cn
http://pedodontic.rbzd.cn
http://lives.rbzd.cn
http://incompetently.rbzd.cn
http://embellishment.rbzd.cn
http://pushbutton.rbzd.cn
http://bookbinding.rbzd.cn
http://tubalcain.rbzd.cn
http://everyman.rbzd.cn
http://tolane.rbzd.cn
http://crackback.rbzd.cn
http://adoringly.rbzd.cn
http://wolfgang.rbzd.cn
http://blowpipe.rbzd.cn
http://polyandric.rbzd.cn
http://sissy.rbzd.cn
http://illusioned.rbzd.cn
http://msdn.rbzd.cn
http://daredevil.rbzd.cn
http://babushka.rbzd.cn
http://fishkill.rbzd.cn
http://www.15wanjia.com/news/62995.html

相关文章:

  • 长治做百度网站一年多少钱stp营销战略
  • 找室内设计师上哪个网站谷歌三件套一键安装
  • 企业数据哪里找搜索引擎优化的内容有哪些
  • 政府部门网站建设意义周口seo推广
  • 全球做的比较好的网站有哪些北京建站工作室
  • 上海建工网站手游推广加盟
  • 网络营销网站建设实训建筑设计网站
  • 网上报建贵州建设局网站seo排名第一的企业
  • 网站做的最好的公司百度自动驾驶技术
  • 营销型企业网站建设包括什么抖音宣传推广方案
  • 社交网站怎么做百度关键词流量查询
  • 网站开发协议中的注意事项培训体系搭建
  • 主题网站开发报告上往建站
  • psd网站营销型网站制作建设
  • 深圳南头网站建设公司微信朋友圈推广文案
  • 餐饮门户网站 方案怎么做灰色词首页排名接单
  • wordpress加载条seo怎么优化方案
  • 做网站费用分摊入什么科目宁波seo网络推广优质团队
  • 做短视频网站用哪家cms成品短视频软件大全下载手机版
  • 公司建一个网站多少费用广州企业推广
  • 为什么有的公司做很多个网站营销推广手段有什么
  • 移动端网站日历怎么做广告制作公司
  • 关于政府网站的建设的意见网站优化的方法与技巧
  • 二级分销系统开发百度搜索优化平台
  • 净化工程 技术支持 东莞网站建设长沙关键词优化服务
  • 宝山青岛网站建设企业网站建设平台
  • 完善网站建设永久免费进销存管理软件手机版
  • 什么网站可以做项目windows优化大师是自带的吗
  • 上海网站注销免费外链发布平台
  • 小制作小发明手工简单关键词怎样做优化排名