专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

我用EasyExcel优化了公司的导出(附踩坑记录)

  背景介绍
  最近要改一个导出的功能,在原有的基础上,在导出一份明细数据,要求导出内容加在原有excel的第二个sheet上。考虑到数据量还比较大,干脆引入阿里的EasyExcel来做。
  下面我先上最终代码,再来说说我遇到的坑有哪些代码实战
  引入依赖dependencygroupIdcom。alibabagroupIdeasyexcelartifactIdversion3。1。2versiondependency
  代码:publicStringdoHandle(){try(ByteArrayOutputStreamoutputStreamnewByteArrayOutputStream();com。alibaba。excel。ExcelWriterexcelWriterEasyExcel。write(outputStream)。build()){ListSaleTransferSummaryRateExportVoexportVosqueryAction。querySummaryExport();ListSaleTransferClassRateExportVoexportRateVosqueryAction。queryClassRate();WriteSheetwriteSheetEasyExcel。writerSheet(0,统计)。head(SaleTransferSummaryRateExportVo。class)。build();excelWriter。write(exportVos,writeSheet);WriteSheetrateWriteSheetEasyExcel。writerSheet(1,明细)。head(SaleTransferClassRateExportVo。class)。build();excelWriter。write(exportRateVos,rateWriteSheet);excelWriter。close();数据落地到OSSStringresultPathossClient。uploadFile(outputStream。toByteArray(),ContentMediaEnum。XLSX。getName(),FileExtEnum。XLSX。getName());returnresultPath;}catch(Exceptione){return;}}
  我们项目是将文件传到oss,然后去oss进行下载。也可以直接写入到文件或responsepublicvoiddoHandle(){FilefilenewFile();try(com。alibaba。excel。ExcelWriterexcelWriterEasyExcel。write(file)。build()){ListSaleTransferSummaryRateExportVoexportVosqueryAction。querySummaryExport();ListSaleTransferClassRateExportVoexportRateVosqueryAction。queryClassRate();WriteSheetwriteSheetEasyExcel。writerSheet(0,统计)。head(SaleTransferSummaryRateExportVo。class)。build();excelWriter。write(exportVos,writeSheet);WriteSheetrateWriteSheetEasyExcel。writerSheet(1,明细)。head(SaleTransferClassRateExportVo。class)。build();excelWriter。write(exportRateVos,rateWriteSheet);}catch(Exceptione){log。error(导出异常,e);}}
  只需要修改write的参数即可。
  主要的代码就完成了,那么数据的属性和excel列名称怎么对应上的呢?
  在数据的实体类上加上ExcelProperty注解就行了。它就能自动创建列头,并将数据对应写入。ColumnWidth列宽度ExcelIgnore代表不用导出的属性DateTimeFormat日期格式化publicclassSaleTransferSummaryRateExportVo{ExcelProperty(老师昵称)ColumnWidth(10)privateStringteacherName;ExcelProperty(大区)privateStringregionName;ExcelProperty(小组)privateStringgroupName;ExcelProperty(创建时间)DateTimeFormat(yyyyMMdd)privateDatecreateTime;}
  写完之后觉得表格有点丑,于是又调了下样式。也是几个注解搞定HeadStyle(fillPatternTypeFillPatternTypeEnum。SOLIDFOREGROUND,fillForegroundColor44)HeadFontStyle(fontHeightInPoints10)ContentFontStyle(fontHeightInPoints10)publicclassSaleTransferSummaryRateExportVo{ExcelProperty(老师昵称)privateStringteacherName;ExcelProperty(大区)privateStringregionName;ExcelProperty(小组)privateStringgroupName;ExcelProperty(创建时间)DateTimeFormat(yyyyMMdd)privateDatecreateTime;}
  fillForegroundColor的值就代表颜色,具体什么值代表什么颜色,可以参考IndexedColors枚举类。
  就这样就完成了。导出效果图如下:
  遇到的坑
  1、版本问题
  我最开始用的版本是这样的,因为项目里之前就引入了poidependencygroupIdorg。apache。poigroupIdpoiooxmlartifactIdversion3。17versiondependencydependencygroupIdcom。alibabagroupIdeasyexcelartifactIdversion3。1。2versiondependency
  版本不对的时候写入直接报错。
  异常信息如下:Exceptioninthreadmaincom。alibaba。excel。exception。ExcelGenerateException:java。lang。NoSuchMethodError:org。apache。poi。ss。usermodel。Cell。setCellValue(LjavatimeLocalDateTime;)Vatcom。alibaba。excel。write。ExcelBuilderImpl。addContent(ExcelBuilderImpl。java:65)atcom。alibaba。excel。ExcelWriter。write(ExcelWriter。java:70)atcom。alibaba。excel。ExcelWriter。write(ExcelWriter。java:47)atcn。jojo。sales。app。task。ExportSalesTransferSummaryTask。main(ExportSalesTransferSummaryTask。java:90)Causedby:java。lang。NoSuchMethodError:org。apache。poi。ss。usermodel。Cell。setCellValue(LjavatimeLocalDateTime;)Vatcom。alibaba。excel。write。executor。AbstractExcelWriteExecutor。converterAndSet(AbstractExcelWriteExecutor。java:95)atcom。alibaba。excel。write。executor。ExcelWriteAddExecutor。addJavaObjectToExcel(ExcelWriteAddExecutor。java:174)atcom。alibaba。excel。write。executor。ExcelWriteAddExecutor。addOneRowOfDataToExcel(ExcelWriteAddExecutor。java:82)atcom。alibaba。excel。write。executor。ExcelWriteAddExecutor。add(ExcelWriteAddExecutor。java:58)atcom。alibaba。excel。write。ExcelBuilderImpl。addContent(ExcelBuilderImpl。java:59)。。。3more
  2、excelWriter要关闭excelWriter。close();
  我之前因为excelWriter的定义是是写在try里的,所以没有close,但是我的用法又是将excelWriter写入到字节流,然后字节流传到oss,而且这个步骤也是在try里面。就导致了我一直写入不成功,后来才发现,浪费了一点时间。

2022。11。04早安心语,正能量真理霸气语录寒秋早上好图片说说早上好,今天是2022年11月04日,星期五,农历十月十一,壬寅年虎年庚戌月辛酉日。努力,不是为了要感动谁,也不是要做给哪个人看,而是要让自己随时有能力跳出自己厌恶的圈子,并拥有选大雨特报吴德荣明起冷空气南下低温下探16度东北季风影响,台湾气象部门发布基隆北海岸宜兰县大雨特报,今天基隆北海岸及宜兰地区有局部大雨发生的机率。联合报资料照片东北季风影响,台气象部门发布基隆北海岸宜兰县大雨特报,今天基隆北阿里国际站提升课视频封面编辑器功能使用教程视频封面编辑器功能使用教程国际站为了大家可以更方便的制作封面,在MA后台上线了视频封面编辑器功能!下面我整理了视频封面编辑器功能的详细使用教程,还不会的商家朋友们千万不要错过今天这中央气象台江南华南部分地区有小到中雨,弱冷空气将影响中东部地区一天气实况1。国内实况福建广东台湾等地出现风雨天气昨日08时至今日06时,受台风尼格影响,福建东北部和中部广东东南部台湾岛东北部等地部分地区出现大雨或暴雨,广东惠州深圳汕尾局地大暴欲望都市Carrie的一些时尚造型芭蕾舞短裙即使那些不能一字不差地引用欲望都市中任何一集的人也会认出这个样子。这是Carrie的第一套正式服装,一件分层的芭蕾舞短裙配上一件浅粉色背心和系带凉鞋,为演出的开幕式定下了女人若是喜欢你,大都是在相处中,找到了三种感觉文大梦喜欢是可以找出原因的。年少时候,看着穿着白色衬衣在操场上打球的男生很帅,不由得莫名心动,喜欢的种子就悄悄地种下成年的爱情虽然有了太多的衡量,但是情感上头的时候,仍然会有控制不德拉季奇我们感觉我们拥有联盟中的最佳替补阵容公牛在比赛中10688击败黄蜂。赛后,公牛球员戈兰德拉季奇接受了采访。德拉季奇说道我们的目标就是打得有强度,我们有一群很棒的家伙,我们的搭配很不错。AC(亚历克斯卡鲁索)和(尼古拉河南三门峡迎来越冬白天鹅11月1日,白天鹅在河南三门峡市天鹅湖国家城市湿地公园嬉戏。据天鹅湖国家城市湿地公园工作人员统计,当日在这里的白天鹅已经达1000只左右。据悉,从10月10日开始,白天鹅陆续回到三甘肃阿克塞色彩斑斓湿地美来源人民网甘肃阿克塞色彩斑斓湿地美甘肃阿克塞色彩斑斓湿地美2甘肃阿克塞色彩斑斓湿地美3甘肃阿克塞色彩斑斓湿地美4甘肃阿克塞色彩斑斓湿地美5甘肃阿克塞色彩斑斓湿地美6甘肃阿克塞色彩斑灯泡机和智能投影怎么选择?爱普生5700tx和当贝x3播放画面对比双十一的第一波战争可算结束了,作为一名数码发烧友之前心心念念的投影仪也都抢到了,装修的时候就给家里留了一面大白墙就为了给投影仪用我们家的客厅比较大所以这次选了当贝X3和爱普生570四川茂县叠溪松坪沟色彩斑斓秋景如画游客在松坪沟拍照留念。何清海摄松坪沟风光。何清海摄松坪沟风光。何清海摄松坪沟风光。何清海摄松坪沟风光。刘通摄松坪沟风光。刘通摄松坪沟风光。刘通摄松坪沟风光。刘通摄松坪沟风光。刘通摄
再见詹姆斯!病情曝光恐竹篮打水,湖人进行两手准备众所周知,湖人在交易日截止前,完成了重大交易,送出了三双王威斯布鲁克跟受保护首轮签,换来了拉塞尔范德比尔特跟比斯利。这笔交易可以说是最近三四年来,佩林卡最成功的操作,堪称打劫级别。售价同为13。58万元,秦PLUSDMi对比卡罗拉双擎,谁更适合你?说到这几年非常火爆的新能源车型,可以选择的车型也是比较丰富,小编筛选了两款车型,秦PLUSDMi120KM超越型和卡罗拉双擎先锋版,两款车型的售价同为13。58万元,那么谁更值得入避孕套前面的尖尖有啥用?关于避孕套的这些知识,男女都需了解张丽和李明是一对情侣,两人感情一直很好,这天两人都决定为对方奉献出第一次,然而,张丽很担心怀孕的问题,因为她还没准备好做母亲,所以在第一次夫妻生活时,她和李明选择了使用避孕套。当他你所了解的常识一定正确吗?这几条男女生理知识,该纠正观念了头条创作挑战赛周易里曾写到,蒙以养正,圣功也。这句话的意思是,从孩子刚出生懵懂的时候,父母就该施以正确教育,培养他良好的品质,这是造就圣人成功的必经之路,是世间最伟大的事情。随着教英超综合阿森纳利物浦双双得胜新华社伦敦3月1日电(记者张薇)阿森纳利物浦1日双双亮相英超赛场,前者40大胜埃弗顿后以5分优势继续领跑积分榜,后者20送走狼队后排名升至第六。阿森纳球员正在庆祝胜利。新华社美联坐首席執行官馬斯特斯表示,英超俱樂部因英國退歐而支出更多切爾西在一月份打破了英國轉會記錄,簽下了恩佐費爾南德斯。聯盟首席執行官理查德馬斯特斯週四表示,英國脫歐後實施的新簽證制度是英超俱樂部在轉會費上花費創紀錄金額的一個促成因素,因為他們熊田直纪4分钟2球逆转比赛我的强项是接球破门今天头球的感觉很棒扬子晚报网3月3日讯(记者孙云岳张晨瑆张昊)在刚刚结束的U20亚洲杯上,凭借熊田直纪下半场的两粒进球,U20国足被日本队逆转。赛后,熊田直纪接受了媒体采访。上半场,U20国足利用对利物浦再次与小老板联动,发布与NBA巨星詹姆斯的联名球鞋直播吧3月3日讯利物浦官网消息,利物浦官方商城最新上线了与小老板NBA巨星詹姆斯的联名球鞋,利物浦后卫范迪克上脚试穿,并拍照。据悉,利物浦此次发布的球鞋为LiverpoolFCxL从警43年的她主动投案2023年3月3日,湖南省纪委监委通报株洲市公安局原党委委员副局长,现任株洲市公安局二级高级警长凌娅涉嫌严重违纪违法,主动投案,目前正接受株洲市纪委监委纪律审查和监察调查。一个资深周通为何选择告别中超?留洋路上充满了各种惊喜这大概是奥克兰城俱乐部首次在这样的时间官宣球员加盟。3月1日8时,这家大洋洲的巨无霸球会官宣周通加盟的消息,此时新西兰的时间已经是13时了。奥克兰城的想法已经很明确了,得到一名出色中国十大富豪排行榜浙江人广东人最多,你的家乡有人上榜吗小编根据最新的衡昌烧坊胡润百富榜整理出了中国当前的十大富豪排行榜,从这份榜单中可以看出农夫山泉的掌舵人钟睒睒以4550亿元人民币排名榜首,成为中国首富。字节跳动的张总则紧随其后,以
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网