Jv源码分享的网站 jv源码分享的网站是什么(jni源码)

大家好!今天让小编来大家介绍下关于Jv源码分享的网站 jv源码分享的网站是什么的问题,以下是酷知号的小编对此问题的归纳整理,让我们一起来看看吧。

Jv源码分享的网站 jv源码分享的网站是什么

大家好,关于Java源码分享的网站很多朋友都还不太明白,今天小编就来为大家分享关于java源码分享的网站是什么的知识,希望对各位有所帮助!

介绍语

本号主要是Java常用关键技术点,通用工具类的分享;以及springboot+springcloud+Mybatisplus+druid+mysql+redis+swagger+maven+docker等集成框架的技术分享;datax、kafka、flink等大数据处理框架的技术分享。文章会不断更新,欢迎码友关注点赞收藏转发!

望各位码友点击关注,冲1000粉。后面会录制一些视频教程,图文和视频结合,比如:图书介绍网站系统、抢购系统、大数据中台系统等。技术才是程序猿的最爱,码友们冲啊

如果码友觉得代码太长,可以从头到尾快速扫射一遍,了解大概即可。觉得有用后再转发收藏,以备不时之需。

正文:

excel导入导出工具类,今天整理出来了,看了下项目中用的居然还是1.x版本,整理时升级到easyexcel3.0.2最新版本,没想到之前封装的一堆代码都不需要,现在这个版本太好用了。大家可以直接使用easyexcel的方法,封装多一层是为了项目更方便使用而已。

例子1

读测试

@TestnpublicvoidreadTest(){n//读取测试nStringreadFile=&34;;nList<Student>data=EasyExcelUtil.read(readFile,Student.class);nprintList(data);n}nprivatestaticvoidprintList(List<?>datas){ninti=0;nfor(Objectob:datas){nSystem.out.println(i+++&34;+ob);n}n}nn//控制台打印n17:55:58.240[main]INFO-解析完成!读取10行n0=>Student(name=张1,age=12,address=深圳0栋大楼,birthday=WedNov0312:17:46GMT+08:002021)n1=>Student(name=张1,age=13,address=深圳1栋大楼,birthday=WedNov0312:17:46GMT+08:002021)n2=>Student(name=张1,age=14,address=深圳2栋大楼,birthday=WedNov0312:17:46GMT+08:002021)n3=>Student(name=张1,age=15,address=深圳3栋大楼,birthday=WedNov0312:17:46GMT+08:002021)n4=>Student(name=张1,age=16,address=深圳4栋大楼,birthday=WedNov0312:17:46GMT+08:002021)n5=>Student(name=张1,age=17,address=深圳5栋大楼,birthday=WedNov0312:17:46GMT+08:002021)n6=>Student(name=张1,age=18,address=深圳6栋大楼,birthday=WedNov0312:17:46GMT+08:002021)n7=>Student(name=张1,age=19,address=深圳7栋大楼,birthday=WedNov0312:17:46GMT+08:002021)n8=>Student(name=张1,age=20,address=深圳8栋大楼,birthday=WedNov0312:17:46GMT+08:002021)n9=>Student(name=张1,age=21,address=深圳9栋大楼,birthday=WedNov0312:17:46GMT+08:002021)

例子2

写测试

@TestnpublicvoidwriteTest(){n//写入测试nList<Student>stus=newArrayList<>();nfor(inti=0;i<10;i++){nstus.add(newStudent(&34;,12+i,&34;+i+&34;,newDate()));n}nStringfile=&34;;nEasyExcelUtil.write(file,stus);n}nn//控制台无输出,可以在工程跟目录找到导出的文件student信息表2.xlsx

例子3

直接返回给浏览器下载

@RequestMapping(value=&34;,method=RequestMethod.GET)npublicStringdownload(HttpServletRequestrequest,HttpServletResponseresponse)throwsIOException{nn//写入测试nList<Student>stus=newArrayList<>();nfor(inti=0;i<10;i++){nstus.add(newStudent(&34;,12+i,&34;+i+&34;,newDate()));n}nEasyExcelUtil.download(response,stus,&34;);nreturn&34;;n}

例子2和例子3导出的文件内容:

excel导出内容

工具类源码:

importcom.alibaba.excel.EasyExcel;nimportorg.slf4j.Logger;nimportorg.slf4j.LoggerFactory;nnimportjavax.servlet.http.HttpServletResponse;nimportjava.io.*;nimportjava.net.URLEncoder;nimportjava.util.List;nn/**n*excel工具类n*easyexcel使用的3.0.2版本,跟以前版本有很大区别,且不兼容1.x版本n*n*@authorliangxnn*/npublicclassEasyExcelUtil{nnprivatestaticfinalLoggerLOGGER=LoggerFactory.getLogger(EasyExcelUtil.class);nnpublicstatic<T>List<T>read(StringfilePath,finalClass<?>clazz){nFilef=newFile(filePath);ntry(FileInputStreamfis=newFileInputStream(f)){nreturnread(fis,clazz);n}catch(FileNotFoundExceptione){nLOGGER.error(&34;,filePath,e);n}catch(IOExceptione){nLOGGER.error(&34;,e);n}nnreturnnull;n}nnpublicstatic<T>List<T>read(InputStreaminputStream,finalClass<?>clazz){nif(inputStream==null){nthrownewMyAppRunException(&34;);n}nn//有个很重要的点DataListener不能被spring管理,要每次读取excel都要new,然后里面用到spring可以构造方法传进去nDataListener<T>listener=newDataListener<>();nn//这里需要指定读用哪个class去读,然后读取第一个sheet文件流会自动关闭nEasyExcel.read(inputStream,clazz,listener).sheet().doRead();nreturnlistener.getRows();n}nnpublicstaticvoidwrite(StringoutFile,List<?>list){nClass<?>clazz=list.get(0).getClass();n//新版本会自动关闭流,不需要自己操作nEasyExcel.write(outFile,clazz).sheet().doWrite(list);n}nnpublicstaticvoidwrite(StringoutFile,List<?>list,StringsheetName){nClass<?>clazz=list.get(0).getClass();n//新版本会自动关闭流,不需要自己操作nEasyExcel.write(outFile,clazz).sheet(sheetName).doWrite(list);n}nnpublicstaticvoidwrite(OutputStreamoutputStream,List<?>list,StringsheetName){nClass<?>clazz=list.get(0).getClass();n//新版本会自动关闭流,不需要自己操作n//sheetName为sheet的名字,默认写第一个sheetnEasyExcel.write(outputStream,clazz).sheet(sheetName).doWrite(list);n}nn/**n*文件下载(失败了会返回一个有部分数据的Excel),用于直接把excel返回到浏览器下载n*/npublicstaticvoiddownload(HttpServletResponseresponse,List<?>list,StringsheetName)throwsIOException{nClass<?>clazz=list.get(0).getClass();nn//这里注意有同学反应使用swagger会导致各种问题,请直接用浏览器或者用postmannresponse.setContentType(&34;);nresponse.setCharacterEncoding(&34;);n//这里URLEncoder.encode可以防止中文乱码当然和easyexcel没有关系nStringfileName=URLEncoder.encode(sheetName,&34;).replaceAll(&34;,&34;);nresponse.setHeader(&34;,&39;&34;+fileName+&34;);nEasyExcel.write(response.getOutputStream(),clazz).sheet(sheetName).doWrite(list);n}nn}

相关的其它类

importcom.alibaba.excel.annotation.ExcelProperty;nimportcom.alibaba.excel.annotation.format.DateTimeFormat;nimportlombok.AllArgsConstructor;nimportlombok.Data;nimportlombok.NoArgsConstructor;nnimportjava.util.Date;nn@Datan@AllArgsConstructorn@NoArgsConstructornpublicclassStudent{n@ExcelProperty(value=&34;,index=0)nprivateStringname;nn@ExcelProperty(value=&34;,index=1)nprivateintage;nn@ExcelProperty(value=&34;,index=2)nprivateStringaddress;nn//easyexcel日期类型不支持LocalDate,只能是Daten@ExcelProperty(value=&34;,index=3)n@DateTimeFormat(&34;)nprivateDatebirthday;n}

/**n*通用异常类n*/npublicclassMyAppRunExceptionextendsRuntimeException{nnpublicMyAppRunException(Stringmessage){nsuper(message);n}nnpublicMyAppRunException(Stringmessage,Throwablecause){nsuper(message,cause);n}nnpublicMyAppRunException(Throwablecause){nsuper(cause);n}nnprotectedMyAppRunException(Stringmessage,nThrowablecause,nbooleanenableSuppression,nbooleanwritableStackTrace){nsuper(message,cause,enableSuppression,writableStackTrace);n}nn}

鄙人编码十年多,在项目中也积累了一些工具类,很多工具类在每个项目都有在用,很实用。大部分是鄙人封装的,有些工具类是同事封装的,有些工具类已经不记得是ctrl+c的还是自己封装的了,现在有空就会总结项目中大部分的工具类,分享给各位码友。如果文章中涉及的代码有侵权行为请通知鄙人处理。

计划是先把工具类整理出来,正所谓工欲善其事,必先利其器。项目中不管是普通单体项目还是多模块maven项目或是分布式微服务,一部分功能模块都是可以重用的,工具类模块就是其中之一。

好了,文章到这里就结束啦,如果本次分享的Java源码分享的网站和java源码分享的网站是什么问题对您有所帮助,还望关注下本站哦!

以上就是小编对于Jv源码分享的网站 jv源码分享的网站是什么问题和相关问题的解答了,Jv源码分享的网站 jv源码分享的网站是什么的问题希望对你有用!

文章来自互联网,只做分享使用。发布者:酷知号,转转请注明出处:https://www.kuzhihao.com/article/351119.html

(0)
上一篇 2023年8月5日 18:05
下一篇 2023年8月5日 18:05

相关推荐