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

定制型网站做教程网站犯法吗

定制型网站,做教程网站犯法吗,珠海网站建设q479185700强涵,建设不动产网站目录 一、 EasyExcel简介 官网链接#xff1a; 代码链接#xff1a; 二、 EasyExcel快速上手 引入依赖#xff1a; 设置Excel相关注解 编写对应的监听类#xff1a; 简单写入数据#xff1a; 简单读取数据#xff1a; 不需要使用监听器#xff1a; 需要使…目录 一、 EasyExcel简介  官网链接 代码链接 二、 EasyExcel快速上手  引入依赖 设置Excel相关注解 编写对应的监听类 简单写入数据  简单读取数据 不需要使用监听器 需要使用监听器 三、EasyExcel进阶操作 批量写入数据 批量写入不同的sheet的不同对象 填充数据 四、实战EasyExcelExcel表格的导入和导出 一、 EasyExcel简介  EasyExcel 是一个基于 Java 的简单、高效的 Excel 处理工具。它由阿里巴巴开源主要解决了在 Java 应用中处理 Excel 文件时内存溢出的问题。 EasyExcel 和 Apache POI 都是 Java 生态中处理 Excel 文件的库但它们在设计理念、性能、使用复杂度等方面有所不同。以下是 EasyExcel 相比于 Apache POI 的主要优势和一些差异 性能 内存占用EasyExcel 是为低内存占用而设计的。在处理大型 Excel 文件时EasyExcel 可以实现按行读取和写入而不需要将整个文件加载到内存中从而显著降低内存使用。而 Apache POI 在处理大型文件时可能会因为将整个文件加载到内存而导致内存溢出。 处理速度EasyExcel 对读取和写入操作进行了优化通常在处理速度上比 Apache POI 更快。 使用复杂度 API 设计EasyExcel 提供了更为简洁的 API使得读取和写入操作更加直观和方便。而 Apache POI 提供了丰富的 API但这也使得它的使用相对复杂。 模型映射EasyExcel 支持使用注解直接将 Excel 的列映射到 Java 实体的字段上简化了数据转换的过程。Apache POI 需要手动处理每一行和每一列的数据。 官网链接 EasyExcel官方文档 - 基于Java的Excel处理工具 | Easy Excel 官网 (alibaba.com) 代码链接 https://gitee.com/seniorGitee/easy-excel 二、 EasyExcel快速上手  引入依赖 dependencygroupIdcom.alibaba/groupIdartifactIdeasyexcel/artifactIdversion4.0.2/version /dependency 设置Excel相关注解 以员工实体类为例 ExcelIgnore设置忽略导出的字段信息 ExcelProperty设置导出的字段名导出的字段默认按照顺序从0开始排序如果想指定导出字段的在第几列的话可以设置对应的indexindex的值字段所在列数-1类似数组下标索引 DateTimeFormat定义日期格式 ColumnWidth设置字段宽度 其实ExcelProperty还有很多复杂的操作具体请查看官网文档这里只教会大家快速入门使用 Data AllArgsConstructor NoArgsConstructor public class Employee implements Serializable {/*** 忽略这个字段*/ExcelIgnoreprivate Long id;ExcelProperty(员工名)private String name;ExcelProperty(员工年龄)private Integer age;ExcelProperty(value 员工工资,index 3)private BigDecimal salary;ColumnWidth(15)DateTimeFormat(yyyy年MM月dd日)ExcelProperty(value 入职时间,index 2)private Date entryTime;}编写对应的监听类 编写Employee对应的监听类EmployeeListener 注意有个很重要的点 DemoDataListener 不能被spring管理要每次读取excel都要new,然后里面用到spring可以构造方法传进去 Slf4j public class EmployeeListener implements ReadListenerEmployee {/*** 每隔5条存储数据库实际使用中可以100条然后清理list 方便内存回收*/private static final int BATCH_COUNT 100;/*** 缓存的数据*/private ListEmployee cachedDataList ListUtils.newArrayListWithExpectedSize(BATCH_COUNT);private IEmployeeService employeeService;public EmployeeListener(IEmployeeService employeeService){this.employeeService employeeService;}//每一条数据解析都会进行调用Overridepublic void invoke(Employee employee, AnalysisContext analysisContext) {log.info(解析到一条数据:{}, JSON.toJSONString(employee));cachedDataList.add(employee);// 达到BATCH_COUNT了需要去存储一次数据库防止数据几万条数据在内存容易OOMif (cachedDataList.size() BATCH_COUNT) {saveData();// 存储完成清理 listcachedDataList ListUtils.newArrayListWithExpectedSize(BATCH_COUNT);}}//所有的数据解析完后进行调用Overridepublic void doAfterAllAnalysed(AnalysisContext analysisContext) {// 这里也要保存数据确保最后遗留的数据也存储到数据库saveData();log.info(所有数据解析完成);}/*** 加上存储数据库*/private void saveData() {log.info({}条数据开始存储数据库, cachedDataList.size());employeeService.save(cachedDataList);log.info(存储数据库成功);} }简单写入数据  注意simpleWrite在数据量不大的情况下可以使用5000以内具体也要看实际情况数据量大参照 重复多次写入可以查看EasyExcel进阶操作批量写入数据 SpringBootTest class EasyExcelApplicationTests {Autowiredprivate IEmployeeService employeeService;Testvoid simpleWrite() {String fileName .\\src\\main\\resources\\static\\simpleWrite System.currentTimeMillis() .xlsx;EasyExcel.write(fileName, Employee.class).sheet(模板).doWrite(employeeService.getData());}} 在resources/static中可以看到导出数据的Excel表格  简单读取数据 读取数据有两种方式分别是使用监听器和不使用监听器的方式进行读取数据 不需要使用监听器 这里的fileName需要修改成读取Excel文件对应的路径 SpringBootTest Slf4j class EasyExcelApplicationTests {Autowiredprivate IEmployeeService employeeService;Testvoid simpleRead(){String fileName .\\src\\main\\resources\\static\\simpleWrite1726145097517.xlsx;// 这里默认每次会读取100条数据 然后返回过来 直接调用使用数据就行// 具体需要返回多少行可以在PageReadListener的构造函数设置EasyExcel.read(fileName, Employee.class, new PageReadListenerEmployee(employeeList - {for (Employee employee : employeeList) {log.info(读取到一条数据{}, JSON.toJSONString(employee));}})).sheet().doRead();}}控制台输出的结果 需要使用监听器 这里的EmployListener对一个之前写的监听类读取Excel文件的数据并将数据存储到数据库中 SpringBootTest Slf4j class EasyExcelApplicationTests {Autowiredprivate IEmployeeService employeeService;Testvoid simpleReadByListener(){String fileName .\\src\\main\\resources\\static\\simpleWrite1726145097517.xlsx;// 这里 需要指定读用哪个class去读然后读取第一个sheet 文件流会自动关闭EasyExcel.read(fileName, Employee.class, new EmployeeListener(employeeService)).sheet().doRead();}}控制台输出的结果 三、EasyExcel进阶操作 批量写入数据 批量写入通一个sheet同一对象 SpringBootTest Slf4j class EasyExcelApplicationTests {Autowiredprivate IEmployeeService employeeService;Testvoid batchWriteOneSheep(){// 方法1: 如果写到同一个sheetString fileName .\\src\\main\\resources\\static\\simpleWrite System.currentTimeMillis() .xlsx;// 这里 需要指定写用哪个class去写try (ExcelWriter excelWriter EasyExcel.write(fileName, Employee.class).build()) {// 这里注意 如果同一个sheet只要创建一次WriteSheet writeSheet EasyExcel.writerSheet(模板).build();Long total employeeService.total();Integer pageSize 10;// 实际使用时根据数据库分页的总的页数来,这里批量插入每次插入10条数据for (int i 1; i Math.ceil((double) total /pageSize); i) {// 分页去数据库查询数据 这里可以去数据库查询每一页的数据PageBean pageBean employeeService.pageEmployee(i,pageSize);excelWriter.write(pageBean.getRows(), writeSheet);}}}}批量写入不同的sheet同一对象 SpringBootTest Slf4j class EasyExcelApplicationTests {Autowiredprivate IEmployeeService employeeService;Testvoid batchWriteDifferentSheep(){// 方法2: 如果写到不同的sheet 同一个对象String fileName .\\src\\main\\resources\\static\\simpleWrite System.currentTimeMillis() .xlsx;// 这里 指定文件try (ExcelWriter excelWriter EasyExcel.write(fileName, Employee.class).build()) {Long total employeeService.total();Integer pageSize 10;// 实际使用时根据数据库分页的总的页数来。这里最终会将数据写到多个sheet里面for (int i 1; i Math.ceil((double) total /pageSize); i) {// 每次都要创建writeSheet 这里注意必须指定sheetNo 而且sheetName必须不一样WriteSheet writeSheet EasyExcel.writerSheet(i, 员工表 i).build();// 分页去数据库查询数据 这里可以去数据库查询每一页的数据PageBean pageBean employeeService.pageEmployee(i,pageSize);excelWriter.write(pageBean.getRows(), writeSheet);}}}}批量写入不同的sheet的不同对象 SpringBootTest Slf4j class EasyExcelApplicationTests {Autowiredprivate IEmployeeService employeeService;Testvoid batchWriteDifferentSheepAndObject(){// 方法3 如果写到不同的sheet 不同的对象String fileName .\\src\\main\\resources\\static\\simpleWrite System.currentTimeMillis() .xlsx;// 这里 指定文件try (ExcelWriter excelWriter EasyExcel.write(fileName).build()) {Long total employeeService.total();Integer pageSize 10;// 实际使用时根据数据库分页的总的页数来。这里最终会将数据写到多个sheet里面for (int i 1; i Math.ceil((double) total /pageSize); i) {// 每次都要创建writeSheet 这里注意必须指定sheetNo 而且sheetName必须不一样。这里注意Employee.class 可以每次都变我这里为了方便 所以用的同一个class// 实际上可以一直变WriteSheet writeSheet EasyExcel.writerSheet(i, 模版表 i).head(Employee.class).build();// 分页去数据库查询数据 这里可以去数据库查询每一页的数据PageBean pageBean employeeService.pageEmployee(i,pageSize);excelWriter.write(pageBean.getRows(), writeSheet);}}}}填充数据 例如我们想将员工表填充到如下的Excel表格中 先对Excel表格模版填写占位符 执行填充Excel表格的代码 SpringBootTest Slf4j class EasyExcelApplicationTests {Autowiredprivate IEmployeeService employeeService;Testvoid fillTemplateData(){//需要填充模版String templateFileName .\\src\\main\\resources\\static\\fillTemplate.xlsx;//模版填充后的文件String fileName .\\src\\main\\resources\\static\\fillTemplateComplete.xlsx;// 这里 会填充到第一个sheet 然后文件流会自动关闭EasyExcel.write(fileName).withTemplate(templateFileName).sheet().doFill(employeeService.getData());}}四、实战EasyExcelExcel表格的导入和导出 web中进行Excel表格数据的导入和导出以员工表为例 RestController RequestMapping(/employee) public class EmployeeController {Autowiredprivate IEmployeeService employeeService;PostMapping(/upload)public void upload(MultipartFile file,HttpServletResponse response) throws IOException{long begin System.currentTimeMillis();EasyExcel.read(file.getInputStream(), Employee.class, new EmployeeListener(employeeService)).sheet().doRead();long end System.currentTimeMillis();response.setContentType(text/html;charsetutf-8);response.getWriter().println(导出数据成功,耗时(end-begin));}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(导出的Excel数据, UTF-8).replaceAll(\\, %20);response.setHeader(Content-disposition, attachment;filename*utf-8 fileName .xlsx);EasyExcel.write(response.getOutputStream(), Employee.class).sheet(员工表).doWrite(employeeService.getData());}}
文章转载自:
http://www.morning.zycll.cn.gov.cn.zycll.cn
http://www.morning.rjljb.cn.gov.cn.rjljb.cn
http://www.morning.mysmz.cn.gov.cn.mysmz.cn
http://www.morning.npkrm.cn.gov.cn.npkrm.cn
http://www.morning.hcqpc.cn.gov.cn.hcqpc.cn
http://www.morning.ndxss.cn.gov.cn.ndxss.cn
http://www.morning.hwcgg.cn.gov.cn.hwcgg.cn
http://www.morning.spwln.cn.gov.cn.spwln.cn
http://www.morning.gychx.cn.gov.cn.gychx.cn
http://www.morning.tsqpd.cn.gov.cn.tsqpd.cn
http://www.morning.xlyt.cn.gov.cn.xlyt.cn
http://www.morning.nrqnj.cn.gov.cn.nrqnj.cn
http://www.morning.ghzfx.cn.gov.cn.ghzfx.cn
http://www.morning.sxygc.cn.gov.cn.sxygc.cn
http://www.morning.ksgjn.cn.gov.cn.ksgjn.cn
http://www.morning.tkryt.cn.gov.cn.tkryt.cn
http://www.morning.jcfg.cn.gov.cn.jcfg.cn
http://www.morning.rwzmz.cn.gov.cn.rwzmz.cn
http://www.morning.bkjhx.cn.gov.cn.bkjhx.cn
http://www.morning.ffptd.cn.gov.cn.ffptd.cn
http://www.morning.smdiaosu.com.gov.cn.smdiaosu.com
http://www.morning.sgpny.cn.gov.cn.sgpny.cn
http://www.morning.pqjpw.cn.gov.cn.pqjpw.cn
http://www.morning.dwhnb.cn.gov.cn.dwhnb.cn
http://www.morning.rqmr.cn.gov.cn.rqmr.cn
http://www.morning.bhrkx.cn.gov.cn.bhrkx.cn
http://www.morning.djlxz.cn.gov.cn.djlxz.cn
http://www.morning.nxbsq.cn.gov.cn.nxbsq.cn
http://www.morning.lgrkr.cn.gov.cn.lgrkr.cn
http://www.morning.mfltz.cn.gov.cn.mfltz.cn
http://www.morning.gskzy.cn.gov.cn.gskzy.cn
http://www.morning.htbgz.cn.gov.cn.htbgz.cn
http://www.morning.zrgsg.cn.gov.cn.zrgsg.cn
http://www.morning.spfq.cn.gov.cn.spfq.cn
http://www.morning.dhqyh.cn.gov.cn.dhqyh.cn
http://www.morning.ftntr.cn.gov.cn.ftntr.cn
http://www.morning.shawls.com.cn.gov.cn.shawls.com.cn
http://www.morning.lmbm.cn.gov.cn.lmbm.cn
http://www.morning.lwgsk.cn.gov.cn.lwgsk.cn
http://www.morning.zymgs.cn.gov.cn.zymgs.cn
http://www.morning.kxypt.cn.gov.cn.kxypt.cn
http://www.morning.kjrp.cn.gov.cn.kjrp.cn
http://www.morning.lgphx.cn.gov.cn.lgphx.cn
http://www.morning.mkyny.cn.gov.cn.mkyny.cn
http://www.morning.kfhm.cn.gov.cn.kfhm.cn
http://www.morning.kxryg.cn.gov.cn.kxryg.cn
http://www.morning.nslwj.cn.gov.cn.nslwj.cn
http://www.morning.yfrbn.cn.gov.cn.yfrbn.cn
http://www.morning.gkmwk.cn.gov.cn.gkmwk.cn
http://www.morning.cbczs.cn.gov.cn.cbczs.cn
http://www.morning.plpqf.cn.gov.cn.plpqf.cn
http://www.morning.czqqy.cn.gov.cn.czqqy.cn
http://www.morning.dkfb.cn.gov.cn.dkfb.cn
http://www.morning.svrud.cn.gov.cn.svrud.cn
http://www.morning.stsnf.cn.gov.cn.stsnf.cn
http://www.morning.qhmhz.cn.gov.cn.qhmhz.cn
http://www.morning.kngx.cn.gov.cn.kngx.cn
http://www.morning.yhwyh.cn.gov.cn.yhwyh.cn
http://www.morning.lpqgq.cn.gov.cn.lpqgq.cn
http://www.morning.lyhrg.cn.gov.cn.lyhrg.cn
http://www.morning.ytbr.cn.gov.cn.ytbr.cn
http://www.morning.sfdky.cn.gov.cn.sfdky.cn
http://www.morning.mhnr.cn.gov.cn.mhnr.cn
http://www.morning.clhyj.cn.gov.cn.clhyj.cn
http://www.morning.gsdbg.cn.gov.cn.gsdbg.cn
http://www.morning.ydryk.cn.gov.cn.ydryk.cn
http://www.morning.cprbp.cn.gov.cn.cprbp.cn
http://www.morning.kjcll.cn.gov.cn.kjcll.cn
http://www.morning.kyjyt.cn.gov.cn.kyjyt.cn
http://www.morning.ryfqj.cn.gov.cn.ryfqj.cn
http://www.morning.hgwsj.cn.gov.cn.hgwsj.cn
http://www.morning.qwmsq.cn.gov.cn.qwmsq.cn
http://www.morning.wlsrd.cn.gov.cn.wlsrd.cn
http://www.morning.tzrmp.cn.gov.cn.tzrmp.cn
http://www.morning.lzqxb.cn.gov.cn.lzqxb.cn
http://www.morning.pjzcp.cn.gov.cn.pjzcp.cn
http://www.morning.xxzjb.cn.gov.cn.xxzjb.cn
http://www.morning.wkkqw.cn.gov.cn.wkkqw.cn
http://www.morning.zffn.cn.gov.cn.zffn.cn
http://www.morning.taojava.cn.gov.cn.taojava.cn
http://www.tj-hxxt.cn/news/257189.html

相关文章:

  • 学网站开发要什么基础瓯海建设网站
  • ssc网站建设交流群北京公司排名100
  • 自己公司怎么做网站移动端网站怎么提交
  • 河南省建设培训中心网站公司手机网站
  • 做网站最便宜高校信息化建设 网站
  • 接工程网站聊城做网站推广找谁
  • 网站开发设计工程师响应式网站做seo
  • 为什么选择网站来做论文题目wordpress 微论坛主题
  • 建设工程消防信息网站国家企业官网查询系统
  • 西安市高陵区建设局网站opencart网站
  • 莱山网站建设wordpress空白页面
  • 网站美工设计流程网站搭建 保定
  • 网站规划和布局地方网站建设方案
  • 赣州网站建设行情在线观看视频的免费网站
  • 网站建设龙华wordpress仿豆瓣
  • 用织梦建设网站wordpress字体投影
  • 现在网站开发和软件开发十大财务软件
  • 开淘宝店怎么做充值网站深圳做网站比较好
  • 做特卖的网站有哪些如何建设和优化一个网站步骤
  • 合肥站建设网站建设分金手指排名一
  • 天津专业做网站淘客网站怎么做排名
  • 大庆市让胡路区规划建设局网站如何开一家公司创业
  • 网站建设 海南wordpress postgresql
  • 如何管理企业网站wordpress5.2.2中文
  • 中安消防安全网站建设做的比较好的法律实务培训网站
  • 鹰潭公司做网站品牌推广怎么做
  • 网站建站专业国内重大新闻2023
  • 怎么搭建自己的网站挣钱网店的网站设计方案
  • 企业网站发展趋势企业做年度公示在哪个网站
  • 制作深圳网站建设做公司网站排名