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

做网站的人跑了网站可以恢复吗滕州手机网站建设

做网站的人跑了网站可以恢复吗,滕州手机网站建设,重庆石柱网站设计公司,上海营销平台网站建设EasyExcel简单使用 ​ 之前一直用的Apache POI来做数据的导入导出#xff0c;但听说阿里的EasyExcel也拥有POI的功能的同时#xff0c;在处理大数据量的导入导出的时候性能上比POI更好#xff0c;所以就来尝试使用一下 导入Maven依赖#xff1a; dependency…EasyExcel简单使用 ​ 之前一直用的Apache POI来做数据的导入导出但听说阿里的EasyExcel也拥有POI的功能的同时在处理大数据量的导入导出的时候性能上比POI更好所以就来尝试使用一下 导入Maven依赖 dependencygroupIdcom.alibaba/groupIdartifactIdeasyexcel/artifactIdversion3.2.1/version !-- 请检查并使用最新稳定版本 -- /dependency导出数据功能 导出模型类 ​ 定义一个导出数据模型类用于设置excel文件的格式通过注解的方式可以定义excel中的格式 ColumnWidth(20) 设置excel中列的宽度为20 HeadStyle(horizontalAlignment HorizontalAlignmentEnum.CENTER) 设置文本内容是否居中 HeadFontStyle(bold BooleanEnum.FALSE) 设置字体是否加粗 ExcelProperty(value “电话”, index 0) 设置了excel中的标题value则是标题内容index则是内容所在的列的位置 Data AllArgsConstructor NoArgsConstructor ToString ColumnWidth(20) HeadStyle(horizontalAlignment HorizontalAlignmentEnum.CENTER) HeadFontStyle(bold BooleanEnum.FALSE) public class PmembersExportVO {ColumnWidth(15)ExcelProperty(value 电话, index 0)private String mobile;ColumnWidth(15)ExcelProperty(value 姓名, index 1)private String realname;ColumnWidth(10)ExcelProperty(value 性别, index 2)private String gender;ColumnWidth(10)ExcelProperty(value 省份, index 3)private String resideprovince;ColumnWidth(10)ExcelProperty(value 城市, index 4)private String residecity;ColumnWidth(10)ExcelProperty(value 区/县, index 5)private String residedist;ColumnWidth(20)ExcelProperty(value 地址, index 6)private String address;ColumnWidth(12)ExcelProperty(value 公历生日, index 7)private String birth;ColumnWidth(12)ExcelProperty(value 农历生日, index 8)private String yinlibirth;ColumnWidth(12)ExcelProperty(value 是否闰月, index 9)private String isLeapMonth;}controller代码 ApiOperation(导出居士信息)ApiImplicitParams({ApiImplicitParam(name weiqingview_backend_token, value token, required true, dataType String, paramType header),ApiImplicitParam(name uniacid, value Unicid, required true, dataType Integer, paramType query)})GetMapping(/export)public void export(RequestParam MapString, Object params, HttpServletResponse response) {mcMembersService.exportExcel(params, response);}service代码 ​ 通过查询数据库中的数据并封装到List集合中调用EasyExcel的write方法即可将集合中的数据写入生成excel文件供下载 public void export(MapString, Object params, HttpServletResponse response) {Integer uniacid Integer.valueOf(params.get(uniacid).toString());ListMcMembers mcMembersList this.list(new QueryWrapperMcMembers().eq(isBeliever, 1).eq(uniacid, uniacid));ListPmembersExportVO pmembersExportVOList mcMembersList.stream().map(m - {PmembersExportVO pmembersExportVO new PmembersExportVO();pmembersExportVO.setAddress(m.getAddress());pmembersExportVO.setMobile(m.getMobile());pmembersExportVO.setGender(ObjectUtils.isEmpty(m.getGender()) ? : m.getGender().equals(0) ? 女 : 男);pmembersExportVO.setBirth(m.getBirth());pmembersExportVO.setYinlibirth(m.getYinlibirth());pmembersExportVO.setRealname(m.getRealname());pmembersExportVO.setResidedist(m.getResidedist());pmembersExportVO.setResidecity(m.getResidecity());pmembersExportVO.setResideprovince(m.getResideprovince());pmembersExportVO.setIsLeapMonth(ObjectUtils.isEmpty(m.getIsLeapMonth()) ? 否 : m.getIsLeapMonth() 1 ? 是 : 否);return pmembersExportVO;}).collect(Collectors.toList());// // 导出Excel // EasyExcel.write(居士信息数据.xls, PmembersExportVO.class).head(headersList) // 设置表头 // .sheet(用户信息) // .doWrite(pmembersExportVOList);// 设置响应头response.setContentType(application/vnd.openxmlformats-officedocument.spreadsheetml.sheet);response.setCharacterEncoding(utf-8);String fileName null;try {fileName URLEncoder.encode(居士信息数据.xlsx, UTF-8);response.setHeader(Content-Disposition, attachment;filename fileName);EasyExcel.write(response.getOutputStream(), PmembersExportVO.class).sheet(用户信息).doWrite(pmembersExportVOList);} catch (UnsupportedEncodingException e) {log.error(导出居士信息报错 UnsupportedEncodingException:{}, e);} catch (IOException e) {log.error(导出居士信息报错 IOException:{}, e);}}导入数据功能 导入数据模型类 ​ 我这里用的跟导出数据类基本一致所以也就改了个类名 ​ 只要用ExcelProperty指定对应列的信息就行其他指定格式的注解其实可以忽略 Data AllArgsConstructor NoArgsConstructor ToString ColumnWidth(20) HeadStyle(horizontalAlignment HorizontalAlignmentEnum.CENTER) HeadFontStyle(bold BooleanEnum.FALSE) public class ImportPmcMembersDTO {ColumnWidth(15)ExcelProperty(value 电话, index 0)private String mobile;ColumnWidth(15)ExcelProperty(value 姓名, index 1)private String realname;ColumnWidth(10)ExcelProperty(value 性别, index 2)private String gender;ColumnWidth(10)ExcelProperty(value 省份, index 3)private String resideprovince;ColumnWidth(10)ExcelProperty(value 城市, index 4)private String residecity;ColumnWidth(10)ExcelProperty(value 区/县, index 5)private String residedist;ColumnWidth(20)ExcelProperty(value 地址, index 6)private String address;ColumnWidth(12)ExcelProperty(value 公历生日, index 7)private String birth;ColumnWidth(12)ExcelProperty(value 农历生日, index 8)private String yinlibirth;ColumnWidth(12)ExcelProperty(value 是否闰月, index 9)private String isLeapMonth;}controller代码 ​ 前端页面上传一个name是file的文件 ApiOperation(导入居士信息)ApiImplicitParams({ApiImplicitParam(name weiqingview_backend_token, value token, required true, dataType String, paramType header),ApiImplicitParam(name uniacid, value Unicid, required true, dataType Integer, paramType query),ApiImplicitParam(name file, value file, required true, dataType MultipartFile, paramType query)})PostMapping(/uploadExcel)public R uploadExcel(RequestParam(file) MultipartFile file, RequestParam MapString, Object params) {return mcMembersService.importExcel(file, params);}service代码 ​ 下面是接收controller传来的文件后通过调用EasyExcel的read方法直接进行导入操作 public R importExcel(MultipartFile file, MapString, Object params) {// 检查文件是否为空if (file.isEmpty()) {return R.error(没有检测到文件); // 返回错误页面}try {// 执行导入操作EasyExcel.read(file.getInputStream(), ImportPmcMembersDTO.class, new ImportPmcMembersListener(this, params)).sheet().doRead();// 返回上传成功页面return R.ok(导入excel成功);} catch (IOException e) {e.printStackTrace();return R.error(导入excel失败);}}​ 下面是service中基本的添加数据的操作方法导入数据插库的时候也直接调用就不写新的插库方法了 public R pAdd(AddPmcMembersDTO addPmcMembersDTO, MapString, Object params) {McMembers mcMembers new McMembers();BeanUtils.copyProperties(addPmcMembersDTO, mcMembers);mcMembers.setIsBeliever((byte) 1);Integer uniacid Integer.parseInt(params.get(uniacid).toString());mcMembers.setUniacid(uniacid);if (this.save(mcMembers)) {return R.ok(添加成功);}return R.error(添加失败);}listener代码 ​ 上传的话需要定义一个listener并继承AnalysisEventListener这里的T类型就是上面定义的模型类的类型。 ​ 如果是在listener中进行插库操作那需要把service注入进来但是在listener中不能用Autowired所以重写一个带参的构造方法把注入好的service直接传进来使用即可我下面将注入好的mcMembersService传递了进来执行插库操作。下面的AddPmcMembersDTO是我另外定义的一个模型类是用于界面上添加数据用的这里直接转换后调用进行插库操作了。 ​ 当然也可以在listener中先将excel中的数据都封装到List集合中再统一将List中的数据插库也行。 public class ImportPmcMembersListener extends AnalysisEventListenerImportPmcMembersDTO {private McMembersService mcMembersService;private MapString, Object params;//通过构造方法得到注入好的mcMembersServicepublic ImportPmcMembersListener(McMembersService mcMembersService, MapString, Object params) {this.mcMembersService mcMembersService;this.params params;}Overridepublic void invoke(ImportPmcMembersDTO data, AnalysisContext context) {// 处理读取到的每行数据例如保存到数据库System.out.println(读取到一行数据: data.toString());// 这里可以添加保存到数据库的逻辑AddPmcMembersDTO addPmcMembersDTO new AddPmcMembersDTO();addPmcMembersDTO.setMobile(data.getMobile());addPmcMembersDTO.setRealname(data.getRealname());addPmcMembersDTO.setGender((byte) (ObjectUtils.isEmpty(data.getGender()) ? 0 : data.getGender().equals(男) ? 1 : 2));addPmcMembersDTO.setAddress(data.getAddress());addPmcMembersDTO.setBirth(data.getBirth());addPmcMembersDTO.setYinlibirth(data.getYinlibirth());addPmcMembersDTO.setResidedist(data.getResidedist());addPmcMembersDTO.setResidecity(data.getResidecity());addPmcMembersDTO.setResideprovince(data.getResideprovince());addPmcMembersDTO.setIsLeapMonth((byte) (ObjectUtils.isEmpty(data.getIsLeapMonth()) ? 0 : data.getIsLeapMonth().equals(是) ? 1 : 0));// 进行插库操作mcMembersService.pAdd(addPmcMembersDTO, params);}Overridepublic void doAfterAllAnalysed(AnalysisContext context) {// 所有数据解析完毕后的回调System.out.println(所有数据解析完成);}将一下excel数据进行导入操作 用Api工具测试了下上传成功 查看数据库数据也成功导入 整体感觉挺好用的对于不同的数据进行导入的话其实可以再封装成通用的listener这样不用每一个功能导入都去定义一个listener这个等后面有空再折腾吧。 结束
http://www.tj-hxxt.cn/news/136641.html

相关文章:

  • 网站开发速成班html网页设计logo代码
  • 遵义公司建网站要多少费用百度免费广告发布平台
  • 直播网站排名全媒体运营师培训费用
  • 有没有做网站网络营销推广方法ppt
  • 网站建设的前期投入一些网站只能在微信打开怎么做的
  • 佛山制作做网站哪个旅游网站规划好
  • 马克 扎克伯格大学做的网站百度关键词搜索广告的优缺点
  • 如何进行网页设计和网站制作网站建设这个职业是什么意思
  • 做网站page厦门小微企业网站建设补贴
  • 如何加强精神文明网站建设内容湖南百度seo
  • 电商网站的好处wordpress登录插件
  • 微网站网站模板建站自己做qq头像网站
  • 为网站网站做代理怎么判wordpress免费主题 开源
  • 网站开发产品经理招聘网站建设学习学校
  • 网站建化国内知名网站建设
  • 湖南响应式网站建设跨境电商一般卖哪些产品
  • 小型视频网站建设淄博张店整合网络推广
  • 宁波制作网站企业网站制作需求文档
  • python做网站设计公司常用网站开发软件
  • 做标书的视频网站如何做网站流量分析
  • 专业做互联网招聘的网站有哪些内容网址被禁止访问怎么办
  • 珠海网站建设哪个好薇网站建设公司营业执照图片
  • 国外学校网站模板国家标准下载网免费
  • 网站建设专家评审意见手机网站相册代码
  • 呈贡网站建设环保公司网站建设内容
  • 做兼职设计去哪个网站新乡建站
  • 网站首页视频背景福建省建设厅网站资质查
  • 网站建设管理工作自查报告泰安最好的网站建设公司
  • 网页ui设计作品欣赏鹤壁网站建设优化
  • 贵州微信网站建设网站建设需要代码