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

永嘉网站制作免费建立小程序网站

永嘉网站制作,免费建立小程序网站,电子邮箱怎么注册,vi毕业设计作品简介 Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存#xff0c;poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题#xff0c;但POI还是有一些缺陷#xff0c;比如07版Excel解压缩以及解压后存储都是在内存中…简介 Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题但POI还是有一些缺陷比如07版Excel解压缩以及解压后存储都是在内存中完成的内存消耗依然很大。 easyexcel重写了poi对07版Excel的解析一个3M的excel用POI sax解析依然需要100M左右内存改用easyexcel可以降低到几M并且再大的excel也不会出现内存溢出03版依赖POI的sax模式在上层做了模型转换的封装让使用者更加简单方便 网站 官方网站EasyExcel官方文档 - 基于Java的Excel处理工具 | Easy Excelgithub地址GitHub - alibaba/easyexcel: 快速、简洁、解决大文件内存溢出的java处理Excel工具gitee地址easyexcel: 快速、简洁、解决大文件内存溢出的java处理Excel工具。 16M内存23秒读取75M(46W行25列)的Excel3.2.1版本 当然还有极速模式能更快但是内存占用会在100M多一点  快速开始​ 读Excel​ DEMO代码地址https://github.com/alibaba/easyexcel/blob/master/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/demo/read/ReadTest.java /*** 最简单的读* p1. 创建excel对应的实体对象 参照{link DemoData}* p2. 由于默认一行行的读取excel所以需要创建excel一行一行的回调监听器参照{link DemoDataListener}* p3. 直接读即可*/Testpublic void simpleRead() {String fileName TestFileUtil.getPath() demo File.separator demo.xlsx;// 这里 需要指定读用哪个class去读然后读取第一个sheet 文件流会自动关闭EasyExcel.read(fileName, DemoData.class, new DemoDataListener()).sheet().doRead();}写Excel​ DEMO代码地址https://github.com/alibaba/easyexcel/blob/master/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/demo/write/WriteTest.java /*** 最简单的写* p1. 创建excel对应的实体对象 参照{link com.alibaba.easyexcel.test.demo.write.DemoData}* p2. 直接写即可*/Testpublic void simpleWrite() {String fileName TestFileUtil.getPath() write System.currentTimeMillis() .xlsx;// 这里 需要指定写用哪个class去读然后写到第一个sheet名字为模板 然后文件流会自动关闭// 如果这里想使用03 则 传入excelType参数即可EasyExcel.write(fileName, DemoData.class).sheet(模板).doWrite(data());}web上传、下载​ DEMO代码地址https://github.com/alibaba/easyexcel/blob/master/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/demo/web/WebTest.java /*** 文件下载失败了会返回一个有部分数据的Excel* p* 1. 创建excel对应的实体对象 参照{link DownloadData}* p* 2. 设置返回的 参数* p* 3. 直接写这里注意finish的时候会自动关闭OutputStream,当然你外面再关闭流问题不大*/GetMapping(download)public void download(HttpServletResponse response) throws IOException {// 这里注意 有同学反应使用swagger 会导致各种问题请直接用浏览器或者用postmanresponse.setContentType(application/vnd.openxmlformats-officedocument.spreadsheetml.sheet);response.setCharacterEncoding(utf-8);// 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系String fileName URLEncoder.encode(测试, UTF-8).replaceAll(\\, %20);response.setHeader(Content-disposition, attachment;filename*utf-8 fileName .xlsx);EasyExcel.write(response.getOutputStream(), DownloadData.class).sheet(模板).doWrite(data());}/*** 文件上传* p1. 创建excel对应的实体对象 参照{link UploadData}* p2. 由于默认一行行的读取excel所以需要创建excel一行一行的回调监听器参照{link UploadDataListener}* p3. 直接读即可*/PostMapping(upload)ResponseBodypublic String upload(MultipartFile file) throws IOException {EasyExcel.read(file.getInputStream(), UploadData.class, new UploadDataListener(uploadDAO)).sheet().doRead();return success; 实体中的使用 1.集成easyExcel dependencygroupIdcom.alibaba/groupIdartifactIdeasyexcel/artifactIdversion3.0.5/version /dependency 2定义导入导出实体 实体与excel列的映射 创建实体类使用 ExcelProperty、ExcelIgnore 等注解标识导出列 ExcelIgnore 表示忽略此字段 ExcelProperty 用于标识列 value属性设置列的名称index属性设置设置列的序号 从 0 开始   Data NoArgsConstructor AllArgsConstructor public class GamesExcelVO {/*** description: 使用ExcelIgnore注解忽略此字段**/ExcelIgnoreprivate String id;/*** description: 使用ExcelProperty标识列* value属性设置列的名称index属性设置设置列的序号 从 0 开始**/ExcelProperty(value 名称,index 0)private String name;ExcelProperty(value 类型,index 1)private String type;ExcelProperty(value 价格,index 2)private BigDecimal price;}导出excel的代码 GetMapping(/excelExport)public void excelExport(HttpServletResponse response) throws IOException {try{//导出数据(这里使用假数据用来测试)ListGamesExcelVO list Arrays.asList(new GamesExcelVO(UUID.randomUUID().toString().replace(-, ),荒野大镖客:救赎2,开放世界、剧情,new BigDecimal(299.5)),new GamesExcelVO(UUID.randomUUID().toString().replace(-, ),上古卷轴5:天际,开放世界、冒险,new BigDecimal(199.5)),new GamesExcelVO(UUID.randomUUID().toString().replace(-, ),塞尔达传说王国之泪,开放世界、冒险,new BigDecimal(399.5)));//使用easyExcel导出表格EasyExcel.write(response.getOutputStream(),GamesExcelVO.class).sheet(游戏价格) //sheet页名称.doWrite(list); //将要导出的数据}catch (Exception e){log.error(导出失败,e);}finally {//关闭流response.flushBuffer();}}导出的文件 3.Excel复杂表头导出 可将ExcelProperty注解的value属性指定为一个数组来实现复杂表头的导出 与实体的映射 Data NoArgsConstructor AllArgsConstructor public class ClassesExcelVO {/*** description: 可将ExcelProperty注解的value属性指定为一个数组来实现复杂表头的导出**/ExcelProperty(value {1级表头,2},index 0)private Integer title1;ExcelProperty(value {1级表头,3},index 1)private Integer title2;ExcelProperty(value {1级表头,4},index 2)private Integer title3;ExcelProperty(value {1级表头,5},index 3)private Integer title4;ExcelProperty(value {1级表头,2级表头,6},index 4)private Integer title5;ExcelProperty(value {1级表头,2级表头,7},index 5)private Integer title6;ExcelProperty(value {1级表头,8},index 6)private Integer title7;ExcelProperty(value {1级表头,9},index 7)private Integer title8;}导出代码 /*** description: easyExcel复杂表头导出* author: Vinci* date: 2023/8/18 13:04**/GetMapping(/complexExcelExport)public void complexExcelExport(HttpServletResponse response) throws IOException {try{//与简单easyExcel导出的方式一样仅导出对象方式发生变化//创建用于测试的假数据ArrayListClassesExcelVO list new ArrayList();for (int i 0; i 1000; i) {list.add(new ClassesExcelVO(i,i,i,i,i,i,i,i));}//使用easyExcel导出表格EasyExcel.write(response.getOutputStream(),ClassesExcelVO.class).sheet(复杂表头导出测试) //sheet页名称.doWrite(list); //将要导出的数据}catch (Exception e){log.error(导出失败,e);}finally {//关闭流response.flushBuffer();}}导出的文件 4.Excel导入 我们使用 标题3 excel复杂表头导出的excel文件来进行测试代码如下 GetMapping(/excelImport)public void excelImport(RequestParam(file) MultipartFile file){//使用刚刚的复杂导入模板来测试easyExcel导入try {ListClassesExcelVO datas EasyExcel.read(file.getInputStream(), ClassesExcelVO.class, null).excelType(ExcelTypeEnum.XLSX) //可指定文件的导入类型.sheet(0)//读取sheet页码读取多个sheet页可利用循环来进行读取页码从0开始.headRowNumber(4) //设置表头可理解为 读取行 - 1.autoTrim(false) //读取数据时忽略空格默认忽略.doReadSync();//读取到的数据datas.forEach(System.out::println);} catch (Exception e) {log.error(导入失败,e);}}
http://www.hkea.cn/news/14475546/

相关文章:

  • 郑州网站推广¥做下拉去118cr湖北省城乡建设厅证书查询
  • 电子商务网站建设完整详细流程图网站的结构是什么样的
  • 山西移动网站设计高性能标准网站建设进阶指南 pdf
  • 建设专业网站的利弊惠州有家最好网站建设
  • 做类型网站网站建设怎么更换图片
  • “设计网站”wordpress 随机阅读数
  • 宁德市城乡建设局网站杭州建筑公司排名
  • 做网站大量视频怎么存储河南最新新闻事件15条
  • 开发网站开发工程师招聘网上推广是什么意思
  • 免费网站推荐货源华泰保险公司官方网站
  • 静态网站开发课程wordpress设置邮箱
  • 旅游电子商务网站建设论文wordpress 随机图文
  • 电子商务网站建设实训报告南昌开发公司
  • 网站建设如何增加流量如何做一个论坛网站
  • 门户网站建设公司价位资源网站优化排名
  • 工作室做网站wordpress用户密码
  • 移动端网站排名山西建设网站的公司
  • 网站开发实施方案进度wordpress文章只显示题目
  • 做公寓酒店跟网站合作有什么技巧耐克电子商务网站建设
  • 湘潭做网站出色磐石网络台州网站建设服务
  • 绿色在线网站动态个人网站模板
  • 3个典型网站建设公司建站开始的前6个月多少外链最合适
  • 网站设计的公司如何选深圳网站建设网站制作
  • 商业网站开发选题的目的asp网站发布ftp
  • 建设企业网站的需要多长时间超级优化还原
  • 南京市英语网站建设淄博网站建设设计公司
  • 湛江网站建设公司建设银行河北省分行官方网站
  • 国家企业信息公示网查询全国官网seo自己做网站吗
  • 如何使网站做的更好团建网站建设
  • 网站进度条代码wordpress标签前缀