From 177249c76aeea0b4bf8d8816d4994e3b445b45ce Mon Sep 17 00:00:00 2001 From: huanghongfa <huanghongfa123456> Date: 星期四, 02 九月 2021 10:39:34 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/zzj' into zzj --- springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ExcelSelectListUtil.java | 75 ++++++++++++++++++------------------- 1 files changed, 36 insertions(+), 39 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ExcelSelectListUtil.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ExcelSelectListUtil.java index d821af0..5957f55 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ExcelSelectListUtil.java +++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ExcelSelectListUtil.java @@ -11,57 +11,54 @@ private ExcelSelectListUtil() { throw new IllegalStateException("Utility class"); } + /** - * firstRow 開始行號 根据此项目,默认为2(下标0开始) - * lastRow 根据此项目,默认为最大65535 - * firstCol 区域中第一个单元格的列号 (下标0开始) - * lastCol 区域中最后一个单元格的列号 + * firstRow 開始行號 根据此项目,默认为2(下标0开始) lastRow 根据此项目,默认为最大65535 firstCol 区域中第一个单元格的列号 (下标0开始) lastCol 区域中最后一个单元格的列号 * strings 下拉内容 - * */ - public static void selectList(Workbook workbook, int firstCol, int lastCol, String[] strings){ + */ + public static void selectList(Workbook workbook, int firstCol, int lastCol, String[] strings) { int charLenth = stringArrayLength(strings); - int arraylLenth=strings.length; - if(charLenth+arraylLenth>=255){ - Sheet sheet = workbook.getSheetAt(0); - //解决下拉超过255个字符的问题 - String hiddenSheet="hidden"+firstCol; - Sheet category1Hidden = workbook.createSheet(hiddenSheet); - for (int i = 0, length = strings.length; i < length; i++) { - // 循环赋值(为了防止下拉框的行数与隐藏域的行数相对应来获取>=选中行数的数组,将隐藏域加到结束行之后) - category1Hidden.createRow(i).createCell(0).setCellValue(strings[i]); - } - Name category1Name = workbook.createName(); - category1Name.setNameName(hiddenSheet); - category1Name.setRefersToFormula(hiddenSheet+"!$A$1:$A$" + strings.length); - // A1:A代表隐藏域创建第?列createCell(?)时。以A1列开始A行数据获取下拉数组 - // 生成下拉列表 - // 只对(x,x)单元格有效 - CellRangeAddressList cellRangeAddressList = new CellRangeAddressList(2, 65535, firstCol, lastCol); - // 生成下拉框内容 - DVConstraint dvConstraint = DVConstraint.createFormulaListConstraint(hiddenSheet); - HSSFDataValidation dataValidation = new HSSFDataValidation(cellRangeAddressList, dvConstraint); - // 对sheet页生效 - workbook.setSheetHidden(1,true); - sheet.addValidationData(dataValidation); - }else{ + int arraylLenth = strings.length; + if (charLenth + arraylLenth >= 255) { Sheet sheet = workbook.getSheetAt(0); - // 生成下拉列表 - // 只对(x,x)单元格有效 + // 解决下拉超过255个字符的问题 + String hiddenSheet = "hidden" + firstCol; + Sheet category1Hidden = workbook.createSheet(hiddenSheet); + for (int i = 0, length = strings.length; i < length; i++) { + // 循环赋值(为了防止下拉框的行数与隐藏域的行数相对应来获取>=选中行数的数组,将隐藏域加到结束行之后) + category1Hidden.createRow(i).createCell(0).setCellValue(strings[i]); + } + Name category1Name = workbook.createName(); + category1Name.setNameName(hiddenSheet); + category1Name.setRefersToFormula(hiddenSheet + "!$A$1:$A$" + strings.length); + // A1:A代表隐藏域创建第?列createCell(?)时。以A1列开始A行数据获取下拉数组 + // 生成下拉列表 + // 只对(x,x)单元格有效 CellRangeAddressList cellRangeAddressList = new CellRangeAddressList(2, 65535, firstCol, lastCol); - // 生成下拉框内容 + // 生成下拉框内容 + DVConstraint dvConstraint = DVConstraint.createFormulaListConstraint(hiddenSheet); + HSSFDataValidation dataValidation = new HSSFDataValidation(cellRangeAddressList, dvConstraint); + // 对sheet页生效 + workbook.setSheetHidden(1, true); + sheet.addValidationData(dataValidation); + } else { + Sheet sheet = workbook.getSheetAt(0); + // 生成下拉列表 + // 只对(x,x)单元格有效 + CellRangeAddressList cellRangeAddressList = new CellRangeAddressList(2, 65535, firstCol, lastCol); + // 生成下拉框内容 DVConstraint dvConstraint = DVConstraint.createExplicitListConstraint(strings); HSSFDataValidation dataValidation = new HSSFDataValidation(cellRangeAddressList, dvConstraint); - // 对sheet页生效 + // 对sheet页生效 sheet.addValidationData(dataValidation); } } - private static int stringArrayLength(String[] args){ - int rs=0; - for( int i=0 ; i<args.length ; i++ ){ - rs+=args[i].length(); + private static int stringArrayLength(String[] args) { + int rs = 0; + for (int i = 0; i < args.length; i++) { + rs += args[i].length(); } return rs; } } - -- Gitblit v1.7.1