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

网站建设深圳赶集网linux wordpress 空白

网站建设深圳赶集网,linux wordpress 空白,采购管理软件,广州网站建设八爪鱼前言 年关在即#xff0c;还在最后的迭代处理#xff0c;还分了个其他同事的单#xff0c;说是导出的Excel模版的2列要修改为下拉选项#xff0c;过程很曲折#xff0c;不说#xff0c;以下其实就是一个笔记而已#xff01; 其实之前分享过阿里的EasyExcel设置单…前言 年关在即还在最后的迭代处理还分了个其他同事的单说是导出的Excel模版的2列要修改为下拉选项过程很曲折不说以下其实就是一个笔记而已         其实之前分享过阿里的EasyExcel设置单元格下拉框这里是poi原生设置。 一、场景描述 其实就是下载一个Excel文件作为导入的模版然后有一行示例2列是字典值希望给用户的输入做个示例。 二、使用步骤 1.引入库 主要就是引入poi相关包 dependencygroupIdorg.apache.poi/groupIdartifactIdpoi/artifactIdversion4.1.0/version /dependency dependencygroupIdorg.apache.poi/groupIdartifactIdpoi-ooxml/artifactIdversion4.1.0/version /dependency2.工具类 这里分享工具类的部分方法免得看的眼花缭乱。 ExcelTools /*** 导出带下拉框的Excel** param outStream 输出流* param keyValueMap 表头和属性的Map集合,其中Map中Key为Excel列的名称Value为反射类的属性* param list 数据集合* param fileType 文件类型* param title 表头* param dropDownMap 下拉框Map集合,其中Map中Key为Excel列的序号Value为下拉框的值* param T 泛型* throws Exception 异常* auther zhengwen*/public static T void exportDropDownExcel(OutputStream outStream, MapString, String keyValueMap, ListT list,String fileType, String title, MapInteger, ListString dropDownMap) throws Exception {Workbook wb createWorkbook(fileType);exportExcel(wb, outStream, keyValueMap, list, fileType, title, dropDownMap);}/*** 根据文件后缀创建对应的 Workbook* param fileType 文件后缀xls,xlsx* return Workbook*/private static Workbook createWorkbook(String fileType){return ExcelConstant.XLS.equals(fileType) ? new HSSFWorkbook() : new XSSFWorkbook();}/*** 创建带下拉选项的Workbook** param wb Workbook* param outStream 输出流* param keyValueMap 表头和属性的Map集合,其中Map中Key为Excel列的名称Value为反射类的属性* param list 数据集合* param fileType 文件类型* param title 表头* param dropDownMap 下拉框Map集合,其中Map中Key为Excel列的序号Value为下拉框的值* param T 泛型* throws Exception 异常* auther zhengwen*/private static T void exportExcel(Workbook wb, OutputStream outStream, MapString, String keyValueMap, ListT list, String fileType, String title, MapInteger, ListString dropDownMap) throws Exception {ListString keyList new ArrayList(keyValueMap.keySet());// 存储属性信息MapString, String attMap new HashMap(CommonConstant.MAP_DEFAULT_INITIAL_CAPACITY);int index CommonConstant.ZERO;if (ExcelConstant.XLS.equals(fileType)) {// 创建HSSFWorkbook对象(excel的文档对象)CellStyle cellStyle wb.createCellStyle();cellStyle.setWrapText(true);cellStyle.setAlignment(HorizontalAlignment.CENTER);cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);int lastCol keyValueMap.size() - 1;CellRangeAddress callRangeAddress new CellRangeAddress(0, 0, 0, lastCol);// 建立新的sheet对象excel的表单HSSFSheet sheet (HSSFSheet) wb.createSheet(ExcelConstant.SHEET_NAME);// 设置表格默认列宽度为15个字节sheet.setDefaultColumnWidth(20);sheet.addMergedRegion(callRangeAddress);// 声明样式HSSFCellStyle style (HSSFCellStyle) wb.createCellStyle();hssfCellStyleForXls(wb, style);//表格标题HSSFRow rowTitle sheet.createRow(CommonConstant.ZERO);HSSFCell titleCell rowTitle.createCell(0);rowTitle.setHeight((short) 600);//加载单元格样式CellStyle erStyle createCellStyle(wb, (short) 13, true, true);titleCell.setCellStyle(erStyle);titleCell.setCellValue(title);//标题换行设置erStyle.setWrapText(true);titleCell.setCellValue(new HSSFRichTextString(title));// 在sheet里创建第二行为表头参数为行索引(excel的行)可以是065535之间的任何一个HSSFRow rowHeader sheet.createRow(CommonConstant.ONE);DataFormat dataFormat wb.createDataFormat();for (String key : keyList) {HSSFCell cell rowHeader.createCell(index);style.setWrapText(true);//设置为文本,防止科学计数style.setDataFormat(dataFormat.getFormat());cell.setCellStyle(style);cell.setCellValue(key);attMap.put(Integer.toString(index), keyValueMap.get(key));index;}// 在sheet里创建表头下的数据for (int i CommonConstant.ZERO; i list.size(); i) {int rowNum i CommonConstant.TWO;HSSFRow row sheet.createRow(rowNum);for (int j CommonConstant.ZERO; j keyValueMap.size(); j) {String key Integer.toString(j);String att attMap.get(key);T t list.get(i);Object value getAttrVal(t, att);cellStyle.setWrapText(true);Cell cell row.createCell(j);cell.setCellStyle(cellStyle);if (dropDownMap.containsKey(j)) {setCellDropDownBox(cell, dropDownMap.get(j), sheet, rowNum, rowNum, j, j);} else {cell.setCellValue(getObject(value));}}}} else if (ExcelConstant.XLSX.equals(fileType)) {int lastCol keyValueMap.size() - 1;CellRangeAddress callRangeAddress new CellRangeAddress(0, 0, 0, lastCol);// 建立新的sheet对象excel的表单XSSFSheet sheet (XSSFSheet) wb.createSheet(ExcelConstant.SHEET_NAME);// 设置表格默认列宽度为15个字节sheet.setDefaultColumnWidth(20);sheet.addMergedRegion(callRangeAddress);// 声明样式XSSFCellStyle style (XSSFCellStyle) wb.createCellStyle();xssfCellStyleFor2007(wb, style);//标题XSSFRow rowTitle sheet.createRow(CommonConstant.ZERO);rowTitle.setHeight((short) 600);//表格标题XSSFCell titleCell rowTitle.createCell(0);//加载单元格样式CellStyle erStyle createCellStyle(wb, (short) 13, true, true);titleCell.setCellStyle(erStyle);titleCell.setCellValue(title);//标题换行设置erStyle.setWrapText(true);titleCell.setCellValue(new XSSFRichTextString(title));// 在sheet里创建第一行为表头参数为行索引(excel的行)可以是065535之间的任何一个XSSFRow rowHeader sheet.createRow(CommonConstant.ONE);// 创建单元格并设置单元格内容for (String key : keyList) {XSSFCell cell rowHeader.createCell(index);style.setWrapText(true);cell.setCellStyle(style);cell.setCellValue(key);attMap.put(Integer.toString(index), keyValueMap.get(key));index;}// 在sheet里创建表头下的数据for (int i CommonConstant.ZERO; i list.size(); i) {int rowNum i CommonConstant.TWO;XSSFRow row sheet.createRow(rowNum);for (int j CommonConstant.ZERO; j keyValueMap.size(); j) {String key Integer.toString(j);T t list.get(i);Object value getAttrVal(t, attMap.get(key));CellStyle cellStyle wb.createCellStyle();cellStyle.setWrapText(true);cellStyle.setAlignment(HorizontalAlignment.CENTER);cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);// 下边框cellStyle.setBorderBottom(BorderStyle.THIN);// 左边框cellStyle.setBorderLeft(BorderStyle.THIN);// 上边框cellStyle.setBorderTop(BorderStyle.THIN);// 右边框cellStyle.setBorderRight(BorderStyle.THIN);Font cellfont wb.createFont();cellfont.setFontHeightInPoints((short) 12);cellfont.setFontName(宋体);cellStyle.setFont(cellfont);//row.createCell(j).setCellValue(getObject(value));//row.createCell(j).setCellStyle(cellStyle);//以上2行写的害人的会导致单元格格式丢失DataFormat format wb.createDataFormat();cellStyle.setDataFormat(format.getFormat());//sheet.setDefaultColumnStyle(j, cellStyle);Cell cell row.createCell(j);cell.setCellStyle(cellStyle);if (dropDownMap.containsKey(j)) {setCellDropDownBox(cell, dropDownMap.get(j), sheet, rowNum, rowNum, j, j);} else {cell.setCellValue(getObject(value));}}}}if (null ! wb) {wb.write(outStream);}}/*** 设置cell单元格的下拉框** param cell 单元格* param dropDownMap 下拉框Map集合,其中Map中Key为Excel列的序号Value为下拉框的值* param sheet sheet* param startRow 开始行号* param endRow 结束行号* param startCol 开始列号* param endCol 结束列号* auther zhengwen*/private static void setCellDropDownBox(Cell cell, ListString dropDownMap, Sheet sheet, int startRow, int endRow, int startCol, int endCol) {if (cell null || sheet null) {throw new DreambaseException(单元格或者sheet为空);}// 生成下拉框内容String[] dropDownArray dropDownMap.toArray(new String[0]);//设置下拉框CellRangeAddressList regions new CellRangeAddressList(startRow, endRow, startCol, endCol);if (sheet instanceof XSSFSheet){XSSFSheet xssfSheet (XSSFSheet) sheet;// 生成下拉框DataValidationHelper helper sheet.getDataValidationHelper();DataValidationConstraint constraint helper.createExplicitListConstraint(dropDownArray);DataValidation dataValidation helper.createValidation(constraint, regions);xssfSheet.addValidationData(dataValidation);}if (sheet instanceof HSSFSheet){// 生成下拉框DVConstraint constraint DVConstraint.createExplicitListConstraint(dropDownArray);// 绑定下拉框和作用区域HSSFDataValidation dataValidation new HSSFDataValidation(regions, constraint);sheet.addValidationData(dataValidation);}//设置下拉框选中第一个cell.setCellValue(dropDownArray[0]);}serviceImpl Overridepublic void exportExcel(ListStationExcel excelList, HttpServletRequest request, HttpServletResponse response){try {OutputStream outputStream OutputStreamUtil.getOutputStream(request, response, StationExcel.FILE_NAME);//下拉框数据MapInteger,ListString dropDownMap new HashMap();//查询站点类型ListDictionary stationTypeDictList dictionaryService.queryDictionaryByCategory(CommonConstant.DICT_STATION_TYPE);if(CollectionUtil.isNotEmpty(stationTypeDictList)){ListString typeList new ArrayList();stationTypeDictList.forEach((e) - typeList.add(e.getDesc()));dropDownMap.put(1,typeList);}//查询电压等级ListDictionary electricPowerLevelDictList dictionaryService.queryDictionaryByCategory(CommonConstant.DICT_ELECTRIC_POWER_LEVEL_TYPE);if(CollectionUtil.isNotEmpty(electricPowerLevelDictList)){ListString electricPowerLevelList new ArrayList();electricPowerLevelDictList.forEach((e) - electricPowerLevelList.add(e.getDesc()));dropDownMap.put(3,electricPowerLevelList);}ExcelTools.exportDropDownExcel(outputStream, StationExcel.COLUMN_LIST, excelList, ExcelConstant.XLSX, StationExcel.TITLE, dropDownMap);response.flushBuffer();outputStream.close();} catch (IOException e) {log.error(excel导出失败, e);throw new DreambaseException(excel导出失败IOException异常 e.getMessage());} catch (Exception e) {log.error(excel导出失败, e);throw new DreambaseException(excel导出失败 e.getMessage());}}总结 其实没啥好分享的真的就是个笔记而已希望可以帮到大家
http://www.dnsts.com.cn/news/48280.html

相关文章:

  • 范县网站建设价格校园网站建设素材
  • 猪八戒设计网站如何做兼职珠海网站搭建
  • 微商城网站建设新闻北京门户网站制作费用
  • 游戏卡充值可以做网站吗网站建设公司宣传文案
  • 专业人士怎样建网站企业软件开发公司
  • .net开发的网站 能做成app吗网页模板wordpress
  • 网站建设与管理用什么软件有哪些方面网络舆情应急处置预案
  • wordpress vieu青岛网站seo优化
  • 网站三网合一案例最近韩国电影片免费观看
  • 嘉兴网站建设方案策划wordpress图片搬到聚合图床
  • 网站简繁体转换js媒体营销
  • 网站手机客户端制作药品网上商城
  • 网站备案时间会过期吗装修免费预约平台
  • 建设网站需要学习什么excel导入wordpress
  • app网页制作教程百度seo关键词怎么设置
  • 站长之家官网入口昆明网站建设开发外包
  • 做网页的素材网站seo优化关键词稳定在首页
  • 中国建设监理协会继续教育网站wordpress 产生大量首页
  • 无锡微信网站定制一个网站怎么做软件
  • 做设计比较好的网站推荐jsp做网站步骤
  • 麒贺丝网做的网站优化玉林建设银行网站
  • 微信网站开发详解佛山网站建设推广厂商排名
  • 怎么看网站是否被收录wordpress 替换google字体
  • 高校移动门户网站建设微网站建设套餐
  • 购物网站建设的意义与目的鞋网站建设
  • 有没有专门做美食海报的网站网站开发质量管理
  • 重庆智慧团建网站登录平台网页广告设计师培训
  • 能进入各种网站的浏览器好用的网站管理系统
  • 一些好用的网站商场设计总平面图
  • 网络管理网站策划书施工企业管理杂志官网