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

购物网站开发教程+视频做网站 怎么备案

购物网站开发教程+视频,做网站 怎么备案,新泰房产网,红酒营销型网站建设背景 如题 在业务中经常遇到这样的需求, 上传excel后对数据进行校验, 如果校验不通过, 需要提供excel下载, 并在后面一列提供错误原因. 常见的做法是在导出的方法中, 加一个字段然后在list中, 然后sheet写到返回流中. 但是如果需要统一样式就比较麻烦, 且每次都需要写这么一…背景 如题 在业务中经常遇到这样的需求, 上传excel后对数据进行校验, 如果校验不通过, 需要提供excel下载, 并在后面一列提供错误原因. 常见的做法是在导出的方法中, 加一个字段然后在list中, 然后sheet写到返回流中. 但是如果需要统一样式就比较麻烦, 且每次都需要写这么一串代码. SheetWriteHandler 我使用的阿里的EasyExcel. 它提供了一个处理器来处理sheet, 相当于拦截器 /*** intercepts handle sheet creation** author Jiaju Zhuang*/ public interface SheetWriteHandler extends WriteHandler {/*** Called before create the sheet** param writeWorkbookHolder* param writeSheetHolder*/void beforeSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder);/*** Called after the sheet is created** param writeWorkbookHolder* param writeSheetHolder*/void afterSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder); } 于是我们可以在afterSheetCreate方法中做文章, 统一做处理, 包括实现其他的功能 写一个类来实现这个处理器 /*** 自定义拦截器.新增注释,第一行头加批注**/ Slf4j public class AddErrColWriteHandler implements SheetWriteHandler {/*** 第几行*/private final Integer headIdx;private Integer colIdx;private final String errTitle;private MapInteger, String errMap;/*** param headIdx 标题行,为了符合easyexcel的习惯,下标从1开始* param colIdx 错误所在列. 下标从0开始. 如果没指定,自动取标题行的下一列* param errTitle* param errMap 错误信息,key是内容list的下标(为了方便list遍历时传值),最终它的行是 headIdxerrMap1*/public AddErrColWriteHandler(Integer headIdx, Integer colIdx, String errTitle, MapInteger, String errMap) {this.headIdx headIdx-1;this.colIdx colIdx;this.errTitle errTitle;this.errMap errMap;}/*** param headIdx 标题行,为了符合easyexcel的习惯,下标从1开始* param errTitle* param errMap 错误信息,key是内容list的下标,从0开始(为了方便list遍历时传值),最终它的行是 headIdxerrMap1*/public AddErrColWriteHandler(Integer headIdx, String errTitle, MapInteger, String errMap) {this.headIdx headIdx-1;this.errTitle errTitle;this.errMap errMap;}/*** 表格样式*/private CellStyle cellStyle;private CellStyle cellStyleHeader;Overridepublic void beforeSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {}Overridepublic void afterSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {Row row writeSheetHolder.getCachedSheet().getRow(headIdx);if (row null) {row writeSheetHolder.getCachedSheet().createRow(headIdx);}if (colIdx null){short lastCellNum row.getLastCellNum();colIdx (int) lastCellNum;}Cell cell row.getCell(colIdx);if (cell null) {cell row.createCell(colIdx);}Workbook workbook writeWorkbookHolder.getWorkbook();// 表头样式if (cellStyleHeader null) {cellStyleHeader workbook.createCellStyle();cellStyleHeader.setAlignment(HorizontalAlignment.CENTER);cellStyleHeader.setVerticalAlignment(VerticalAlignment.CENTER);cellStyleHeader.setFillForegroundColor(IndexedColors.WHITE.getIndex());Font font workbook.createFont();font.setFontName(微软雅黑);font.setColor((short) 10);font.setFontHeightInPoints((short) 12);cellStyleHeader.setFont(font);}cell.setCellStyle(cellStyleHeader);cell.setCellValue(errTitle);// 内容样式if (cellStyle null) {cellStyle workbook.createCellStyle(); // cellStyle.setAlignment(HorizontalAlignment.CENTER);cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);cellStyle.setFillForegroundColor(IndexedColors.WHITE.getIndex());Font font workbook.createFont();font.setFontName(微软雅黑);font.setFontHeightInPoints((short) 12);cellStyle.setFont(font);}Sheet sheet writeSheetHolder.getCachedSheet();for (Map.EntryInteger, String en : errMap.entrySet()) {int rowIdx en.getKey() headIdx 1;Row row0 sheet.getRow(rowIdx);if (row0 null) {row0 sheet.createRow(rowIdx);}// 第几列。我这里是1.正常业务根据需求传递Cell cell0 row0.getCell(colIdx);if (cell0 null) {cell0 row0.createCell(colIdx);}cell0.setCellStyle(cellStyle);cell0.setCellValue(en.getValue());}} }使用 //在生成导出的数据list方法中 MapInteger, String errMap new HashMap(); for (int i 0; i list.size(); i) {if(错误){errMap.put(i, errmsg);}} /*** param title 错误列的标题名* param headIdx 标题所在行,为了符合easyexcel的习惯,下标从1开始* param errMsgMap 错误信息,key是内容list的下标,从0开始(为了方便list遍历时传值),最终它的行是 headIdxerrMap1 */EasyExcel.write(os).withTemplate(is).registerWriteHandler(new AddErrColWriteHandler(headIdx,title,errMsgMap)).sheet().doWrite(new ArrayList());}));
http://www.huolong8.cn/news/170686/

相关文章:

  • 杭州展示型网站建设软件开发报价单
  • 嘉盛建设集团网站苏州住房建设局网站首页
  • 莱芜网站建设怎么样wordpress app上传
  • 南阳网站建设大旗电商百度推广怎么做
  • 网站程序 seo上海网站建设套餐
  • 实现网站开发php网站作业
  • 电商网站建设内容规划建设银行钓鱼网站
  • 网站开发商网页设计app软件
  • 网站数据中心的建设建设银行个人网银登录
  • 南京新标特企业网站哪家广告做的哈尔滨关键词优化推广
  • 电脑版和手机版网站怎么做如何制作网页模板
  • 张家港做网站优化排名外链 网站权重
  • 遇到灾难网站变灰怎么做j建设网站
  • 简述建立网站的步骤传播性wordpress主题
  • 域名到期了网站备案还有效吗室内设计师招聘网站
  • 河南省监理协会官方网站建设百度竞价和优化的区别
  • 阿里巴巴国际网站建设wordpress滑动解锁
  • 邹城市网站建设如何用服务器代替空间做网站
  • 个人备案公司网站谈谈网站建设创新问题
  • 网站上传后后台进不去京东内部券网站怎么做
  • 在线可以做翻译的网站吗南宁区建设银行招聘网站
  • 网站开发域名注册成都手机端建站模板
  • 阿里云怎么做淘宝客网站常用的html编辑器有哪些
  • 优秀地方门户网站系统网络营销网
  • phpcms 笑话网站wordpress国人编辑器
  • 那个网站可以做考卷申请了域名 网站怎么建设呢
  • 影响网站打开速度的因素淘宝做问卷的网站
  • linux系统搭建网站保定网站排名哪家公司好
  • 装修公司营销网站模板制作网页时一般使用什么对网页进行布局
  • 做图标的网站网店装修图