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

网站分类代码网站建设seo推广

网站分类代码,网站建设seo推广,天津网络广告公司,北京装修公司怎么选一、Easyexcel 简介 EasyExcel是一个基于Java的Excel处理工具库#xff0c;它的核心设计理念是快速、简洁#xff0c;并且能够有效解决处理大文件时的内存溢出问题。使用EasyExcel#xff0c;开发者可以在几乎不需要考虑性能和内存消耗的情况下#xff0c;轻松实现Excel文…一、Easyexcel 简介 EasyExcel是一个基于Java的Excel处理工具库它的核心设计理念是快速、简洁并且能够有效解决处理大文件时的内存溢出问题。使用EasyExcel开发者可以在几乎不需要考虑性能和内存消耗的情况下轻松实现Excel文件的读写操作。 Easyexcel 官方文档https://easyexcel.opensource.alibaba.com/docs/current/github地址https://github.com/alibaba/easyexcelgitee地址https://gitee.com/easyexcel/easyexcel 二、为何选择 Easyexcel 1. 现有框架的问题 Apache POI 和 jxl: 这两个Java框架用于解析和生成Excel文件但它们的主要问题是内存消耗大。内存溢出问题: 处理大型Excel文件时这些框架可能会消耗大量内存导致内存溢出。 2. Apache POI 的局限性 SAX模式: Apache POI 提供了SAX模式的API来部分解决内存问题但仍然存在不足。内存消耗: 即使使用SAX模式Apache POI 在处理Excel 2007版.xlsx文件时由于解压缩和存储过程在内存中进行内存消耗依然很大。 3. EasyExcel 的优势 重写解析: EasyExcel 重写了Apache POI对Excel 2007版的解析方式显著降低了内存消耗。内存优化: 一个3MB的Excel文件在使用Apache POI的SAX模式解析时可能需要约100MB内存而EasyExcel可以将内存需求降低到几MB。大文件处理: 使用EasyExcel即使更大的Excel文件也不会导致内存溢出。03版Excel处理: 对于Excel 2003版.xlsEasyExcel依赖于Apache POI的SAX模式并在此基础上进行了模型转换封装使得使用更加简单和方便。 三、Springboot 项目集成 EasyExcel 1. pom 文件引入依赖 dependency groupIdcom.alibaba/groupId artifactIdeasyexcel/artifactId version3.1.0/version !-- 请检查并使用最新版本 -- /dependency2. 实体类例如 UserData import com.alibaba.excel.annotation.ExcelProperty; public class UserData { ExcelProperty(value ID, index 0) private Integer id; ExcelProperty(value 姓名, index 1) private String name; ExcelProperty(value 年龄, index 2) private Integer age; // 省略 getter 和 setter 方法 // ... }3. EasyExcel 操作帮助类 import com.alibaba.excel.EasyExcel; import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.event.AnalysisEventListener; import com.alibaba.excel.read.builder.ExcelReaderBuilder; import com.alibaba.excel.read.builder.ExcelReaderSheetBuilder; import com.alibaba.excel.write.builder.ExcelWriterBuilder; import com.alibaba.excel.write.builder.ExcelWriterSheetBuilder; import com.alibaba.excel.write.metadata.WriteSheet; import org.springframework.web.multipart.MultipartFile; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.List; public class EasyExcelUtils { // 导出 Excel public static byte[] exportExcel(List? data, String sheetName, Class? head) { try (ByteArrayOutputStream out new ByteArrayOutputStream()) { ExcelWriterBuilder writerBuilder EasyExcel.write(out, head); ExcelWriterSheetBuilder sheetBuilder writerBuilder.sheet(sheetName); WriteSheet writeSheet sheetBuilder.build(); EasyExcel.write(out, data, writeSheet).finish(); return out.toByteArray(); } catch (IOException e) { throw new RuntimeException(导出 Excel 失败, e); } } // 导入 Excel public static T ListT importExcel(MultipartFile file, ClassT clazz) { try (InputStream inputStream file.getInputStream()) { ExcelReaderBuilder readerBuilder EasyExcel.read(inputStream, clazz, new AnalysisEventListenerT() { private ListT list new ArrayList(); Override public void invoke(T data, AnalysisContext context) { list.add(data); } Override public void doAfterAllAnalysed(AnalysisContext context) { // 数据解析完成后可以在这里处理解析结果 } }); ExcelReaderSheetBuilder sheetBuilder readerBuilder.sheet(); sheetBuilder.doRead(); return list; } catch (IOException e) { throw new RuntimeException(导入 Excel 失败, e); } } // 其他可能需要的帮助方法... }4. 在 Controller 中使用 import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import java.util.Arrays; import java.util.List; RestController public class ExcelController { PostMapping(/exportExcel) public ResponseEntitybyte[] exportExcel() { ListUserData data Arrays.asList( new UserData(1, Alice, 25), new UserData(2, Bob, 30), new UserData(3, Charlie, 35)String fileName users.xlsx; byte[] excelBytes EasyExcelUtils.exportExcel(data, fileName, UserData.class); HttpHeaders headers new HttpHeaders(); headers.setContentDispositionFormData(attachment, fileName); headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); return ResponseEntity.ok() .headers(headers) .body(excelBytes); } PostMapping(/importExcel) public ResponseEntity? importExcel(RequestParam(file) MultipartFile file) { ListUserData userDataList EasyExcelUtils.importExcel(file, UserData.class); // 假设你需要在这里处理导入的数据比如保存到数据库等 // ... return ResponseEntity.ok(Excel 导入成功共导入 userDataList.size() 条数据); }四、前端 vue 页面调用示例 script import axios from axios; export default { // ... 其他选项和数据 ... methods: { exportExcel() { // 假设你有一个要发送到服务器的对象如果需要的话 const params { // 例如: filter: someValue }; axios({ method: post, url: /api/exportExcel, // 修改为你的实际API地址 data: params, // 如果需要的话 responseType: blob, // 告诉axios我们期望返回一个blob }) .then((response) { // 创建一个Blob对象来表示二进制数据 const blob new Blob([response.data], { type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet }); // 创建一个指向该Blob对象的URL const url window.URL.createObjectURL(blob); // 创建一个a标签并模拟点击来下载文件 const link document.createElement(a); link.href url; link.setAttribute(download, users.xlsx); // 设置下载文件名 document.body.appendChild(link); link.click(); // 清理 window.URL.revokeObjectURL(url); document.body.removeChild(link); }) .catch((error) { console.error(导出Excel失败:, error); this.message 导出Excel失败; }); }, // ... 其他方法 ... }, }; /script
http://www.w-s-a.com/news/861872/

相关文章:

  • 撰写网站专题活动策划方案未成年做网站
  • 免费在线响应式网站自助建站网页设计与网站建设试卷
  • 四川省肿瘤医院搜索优化整站优化
  • 新钥匙建站深圳创业补贴政策2023
  • 建网站需要准备什么网站三个月没排名
  • 网站运营规划网站推广的手段
  • cvm可以做网站服务器吗网片围栏
  • 培训前端网站开发网站开发 群
  • 成都武侯区网站建设wordpress菜单分类目录
  • 牡丹江市西安区建设局网站给公司做的东西放到自己网站上
  • 做网站的前景如何郑州seo规则
  • 学校户网站建设方案专业设计服务
  • 电子商务网站建设好么有一个网站怎么做cpc
  • 镇海住房和建设交通局网站跨境电商就是忽悠人的
  • 维修网站怎么做跨境电商发展现状如何
  • 手机网站设计公司皆选亿企邦桐乡市建设局官方网站
  • 企业培训 电子商务网站建设 图片山东省住房和城乡建设厅网站主页
  • 做酒招代理的网站赣icp南昌网站建设
  • 怎样做网站內链大连市建设工程信息网官网
  • 网站软件免费下载安装泰安网站建设收费标准
  • 部署iis网站校园网站设计毕业设计
  • 网站快慢由什么决定塘沽手机网站建设
  • 苏州那家公司做网站比较好装修队做网站
  • 外贸网站推广中山网站流量团队
  • 网站前端设计培训做一份网站的步zou
  • 网站备案拍照茶叶网页设计素材
  • wordpress 手机商城模板关键词优化软件有哪些
  • 网站301做排名python做的网站如何部署
  • 昆山做企业网站工信部网站 备案
  • 做英文的小说网站有哪些网站做qq登录