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

网站推广优化张店在线工具

网站推广优化张店,在线工具,网站开发设计jw100,哈尔滨建设集团董事长这里写目录标题先导入依赖最简单的写最简单的读項目开发中的一些操作xml一定要默認放先导入依赖 <dependencies><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.1.7</version><…

这里写目录标题

  • 先导入依赖
  • 最简单的写
  • 最简单的读
  • 項目开发中的一些操作
  • xml一定要默認放

先导入依赖

<dependencies><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.1.7</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-simple</artifactId><version>1.7.5</version></dependency><dependency><groupId>org.apache.xmlbeans</groupId><artifactId>xmlbeans</artifactId><version>3.1.0</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.12</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency></dependencies>

最简单的写

建立一个类,然后往模板里输入类,sheet就是excel中那个sheet
在这里插入图片描述
主要就是用到了几个类。

import java.util.ArrayList;
import java.util.Date;
import java.util.List;public class ExcalWrite {@Testpublic void simpleWriteTest(){String fileName = "d:/excel/simpleWrite.xlsx"; //需要提前新建目录// 这里 需要指定写用哪个class去写,然后写到第一个sheet,名字为模板 然后文件流会自动关闭EasyExcel.write(fileName, ExcalStudentDto.class).sheet("新的模板").doWrite(data());//sheet是写到ecal的那个sheet里面去}//辅助方法private List<ExcalStudentDto> data(){List<ExcalStudentDto> list = new ArrayList<>();//算上标题,做多可写65536行//超出:java.lang.IllegalArgumentException: Invalid row number (65536) outside allowable range (0..65535)for (int i = 0; i < 65535; i++) {ExcalStudentDto data = new ExcalStudentDto();data.setName("Helen" + i);data.setBirthday(new Date());data.setSalary(123456.1234);list.add(data);}return list;}}

用LIst对数据进行插入。

xlsx最多写1048575行数据

直接在类上加一些注解
![,可以

直接在类上加注解,可以很好修改放在表里数据的名字

最简单的读

建立一个类作为监听器,时时刻刻监听端口的,数据变化情况

package com.atguigu.easyexcel.listener;@Slf4j
public class ExcelStudentDTOListener extends AnalysisEventListener<ExcelStudentDTO> {/*** 这个每一条数据解析都会来调用*/@Overridepublic void invoke(ExcelStudentDTO data, AnalysisContext context) {log.info("解析到一条数据:{}", data);}/*** 所有数据解析完成了 都会来调用*/@Overridepublic void doAfterAllAnalysed(AnalysisContext context) {log.info("所有数据解析完成!");}
}

读数据的操作

  @Testpublic void simpleReadXlsx() {String fileName = "d:/excel/simpleWrite.xlsx";// 这里默认读取第一个sheetEasyExcel.read(fileName, ExcalStudentDto.class, new ExcelStudentDTOListener()).sheet().doRead();}

項目开发中的一些操作

首先,我们要创立对应的实体类,数据交换类,用来当做模型存储数据

在这里插入图片描述

必须和excal表中的是一一对应的关系在这里插入图片描述

一般放在pojo中,这个东西。

在这里插入图片描述
別忘了创建一个监听器,用来监听数据
监听器必须继承AnalysisEventListener
注意有泛型,泛型里面必须放,我们要存储和交换的数据模型类

监听器实现这个方法就行

package com.atguigu.srb.core.listener;import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.atguigu.srb.core.pojo.dto.ExcelDictDTO;
import lombok.extern.slf4j.Slf4j;@Slf4j
public class ExcelDictDTOListener extends AnalysisEventListener<ExcelDictDTO> {/***遍历每一行的记录* @param data* @param context*/@Overridepublic void invoke(ExcelDictDTO data, AnalysisContext context) {log.info("解析到一条记录: {}", data);}/*** 所有数据解析完成了 都会来调用*/@Overridepublic void doAfterAllAnalysed(AnalysisContext context) {// 这里也要保存数据,确保最后遗留的数据也存储到数据库log.info("所有数据解析完成!");}}

在服務层写清楚我们的需求
在这里插入图片描述
路径通过一个InputStream传递进去

在这里插入图片描述
在實現類中放上实现的操作。

在Controller中上传

package com.atguigu.srb.core.controller.admin;import com.atguigu.srb.core.service.DictService;
import com.atguigu.srb.exception.BusinessException;
import com.atguigu.srb.result.R;
import com.atguigu.srb.result.ResponseEnum;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;import javax.annotation.Resource;
import java.io.IOException;
import java.io.InputStream;@CrossOrigin   //检查跨域
@Api(tags = "数字字典")
@RestController
@RequestMapping("/admin/core/dict")
public class AdminDictController {@ResourceDictService dictService;@ResourceR r;@PostMapping("/import")@ApiOperation("数据批量导入")public R  batchImport(@ApiParam(value = "数据字典文件",required = true)@RequestParam("file")MultipartFile file){//拿到一个外面传递进来的InputStream地址InputStream inputStream = null;try {inputStream = file.getInputStream();dictService.importData(inputStream);//数据上传成功return r.ok().message("数据字典批量导入成功");} catch (IOException e) {throw  new BusinessException(ResponseEnum.UPLOAD_ERROR,e);}dictService.importData(inputStream);}
}

在这里插入图片描述

监听器部分优化:

package com.atguigu.srb.core.listener;import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.atguigu.srb.core.pojo.dto.ExcelDictDTO;
import lombok.extern.slf4j.Slf4j;@Slf4j
public class ExcelDictDTOListener extends AnalysisEventListener<ExcelDictDTO> {/***遍历每一行的记录* @param data* @param context*/@Overridepublic void invoke(ExcelDictDTO data, AnalysisContext context) {log.info("解析到一条记录: {}", data);}/*** 所有数据解析完成了 都会来调用*/@Overridepublic void doAfterAllAnalysed(AnalysisContext context) {// 这里也要保存数据,确保最后遗留的数据也存储到数据库log.info("所有数据解析完成!");}}

监听器这里,每次读一条数据data就给封装好,然后往上传递(走一遍流程),读一条,往上传递一次,走一遍流程,效率非常低,我们是不是可以选择,在监听器这个环节,我们读一个List的,将数据存储到一定量在上传?

xml一定要默認放

# 一级目录

防止XML沒裝對位置,可以放這麽一個東西

在依赖里面
在这里插入图片描述
配置了这个就不要把xml文件放在res下面了。

在这里插入图片描述

<build><!-- 项目打包时会将java目录中的*.xml文件也进行打包 --><resources><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes><filtering>false</filtering></resource></resources>
</build>

一定要在taget里,看看xml的字节码进来了没有,如果没进来记得mvn去clean一下
clean完了再去看看target进来了没。
然后重新clean,看看target里有没有xml

http://www.hkea.cn/news/517710/

相关文章:

  • 中国城乡建设网站网络优化公司排名
  • 个人网站做淘宝客教程torrentkitty磁力搜索引擎
  • 广州北京网站建设seo培训讲师招聘
  • 手机上免费自己做网站网络营销案例分享
  • 长沙大型网站建设谷歌账号
  • 大兴德艺网站建设发布悬赏任务的推广平台
  • html5制作网站模板百度产品大全首页
  • 贵阳网站建设贵阳百度推广怎么推广
  • 瓮安建设局网站google play三件套
  • 大型门户网站模板营销神器
  • 学设计的网站都有哪些seo和sem
  • 如何做网站流量买卖营销型网站的特点
  • 装修设计网站哪个平台最好软文推广多少钱一篇
  • 怎么做微信里的网页网站链接网站设计平台
  • 长宁专业做网站网络营销案例分享
  • 哈尔滨专业建网站哪家好码迷seo
  • 涞水县住房和城乡建设局网站厦门seo专业培训学校
  • 网站建设销售招聘德阳seo
  • 平台网站建设的公司seozou是什么意思
  • wordpress 相册 主题seo整站优化技术培训
  • 做窗帘网站图片百度自动点击器下载
  • 飘雪影视大全免费观看视频快推达seo
  • 做网站的装饰标语seo宣传网站
  • 国外 平面设计 网站百度收录
  • 做网站话术简述搜索引擎的工作原理
  • 现在建设网站赚钱吗seo外链论坛
  • 青海网站建设企业海南百度竞价推广
  • 南京做网站yuanmus电脑突然多了windows优化大师
  • 美国做deals的网站软文营销经典案例优秀软文
  • 招标网站怎么做吴江seo网站优化软件