亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

java - Web開發(fā) - POI導(dǎo)出帶有下拉框的Excel和解決下拉中數(shù)組過多而產(chǎn)生的異常

瀏覽:89日期:2022-09-26 17:50:19

問題描述

1、如果Excel下拉的數(shù)組較少(大概為0~20個(gè)),可以用如下方式導(dǎo)出:

/** * Excel API */ @SuppressWarnings('resource') HSSFWorkbook book = new HSSFWorkbook(); HSSFSheet sheet = book.createSheet('xxxx'); /** * 初始化參數(shù) */ Map<String, String> map = new HashMap<String, String>(); // 查詢時(shí)用的map List<Object> list = null; String[] strs = null; // 用于下拉的數(shù)組 int startRow = 1; // 下拉的開始行 int endRow = 100; // 下拉的結(jié)束行 CellRangeAddressList regions = null; DVConstraint constraint = null; CellRangeAddressList addressList = null; HSSFDataValidation validation = null; // 數(shù)據(jù)驗(yàn)證 map.put('namespace', 'xxxxxxxxxx.xxxxxxxxxx'); // 查詢數(shù)據(jù) list = commonQueryService.queryList(map); strs = StringUtil.mapListToStrs(list); // list轉(zhuǎn)換為字符串?dāng)?shù)組 cellNum = SpuEnu.CATEGORY_1.getNumber(); // 下拉的列regions = new CellRangeAddressList(startRow, endRow, cellNum, cellNum); // 開始行、結(jié)束行、開始列、結(jié)束列的下拉區(qū)域均被下拉替代 constraint = DVConstraint.createExplicitListConstraint(strs); validation = new HSSFDataValidation(regions, constraint); // 綁定下拉框和作用區(qū)域 sheet.addValidationData(validation);

2、問題是如果下拉的數(shù)組過多,POI會(huì)出現(xiàn)如下異常信息:

String literals in formulas can’t be bigger than 255 characters ASCII

這個(gè)問題的解決辦法網(wǎng)上不好查到,所以我將解決辦法貼在下面

問題解答

回答1:

下面是解決辦法:

/** * Excel API */ @SuppressWarnings('resource') HSSFWorkbook book = new HSSFWorkbook(); HSSFSheet sheet = book.createSheet('spu導(dǎo)入模板'); /** * 初始化參數(shù) */ Map<String, String> map = new HashMap<String, String>(); // 查詢時(shí)用的map List<Object> list = null; String[] strs = null; // 用于下拉的數(shù)組 String hiddenSheet = null; int cellNum = 0; int startRow = 1; // 開始行 int endRow = 100; // 結(jié)束行 DVConstraint constraint = null; CellRangeAddressList addressList = null; HSSFDataValidation validation = null; // 數(shù)據(jù)驗(yàn)證 map.put('namespace', 'xxxxxxx.xxxxx'); // 查詢 list = commonQueryService.queryList(map); strs = StringUtil.mapListToStrs(list); hiddenSheet = 'category1Hidden'; cellNum = SpuEnu.CATEGORY_1.getNumber();HSSFSheet category1Hidden = book.createSheet(hiddenSheet); // 創(chuàng)建隱藏域 for (int i = 0, length = strs.length; i < length; i++) { // 循環(huán)賦值(為了防止下拉框的行數(shù)與隱藏域的行數(shù)相對(duì)應(yīng)來獲取>=選中行數(shù)的數(shù)組,將隱藏域加到結(jié)束行之后)category1Hidden.createRow(endRow + i).createCell(cellNum).setCellValue(strs[i]); } Name category1Name = book.createName(); category1Name.setNameName(hiddenSheet); category1Name.setRefersToFormula(hiddenSheet + '!A1:A' + (strs.length + endRow)); // A1:A代表隱藏域創(chuàng)建第?列createCell(?)時(shí)。以A1列開始A行數(shù)據(jù)獲取下拉數(shù)組constraint = DVConstraint.createFormulaListConstraint(hiddenSheet); addressList = new CellRangeAddressList(startRow, endRow, cellNum, cellNum); validation = new HSSFDataValidation(addressList, constraint); book.setSheetHidden(1, true); // 1隱藏、0顯示 sheet.addValidationData(validation);

請(qǐng)注意上面的這倆個(gè)地方:

java - Web開發(fā) - POI導(dǎo)出帶有下拉框的Excel和解決下拉中數(shù)組過多而產(chǎn)生的異常

java - Web開發(fā) - POI導(dǎo)出帶有下拉框的Excel和解決下拉中數(shù)組過多而產(chǎn)生的異常java - Web開發(fā) - POI導(dǎo)出帶有下拉框的Excel和解決下拉中數(shù)組過多而產(chǎn)生的異常

標(biāo)簽: excel
相關(guān)文章:
主站蜘蛛池模板: 毛色毛片免费看 | 哦哦哦用力视频在线观看 | 国产在线h视频 | 在线看成人 | 亚洲精品第一区二区三区 | 黄网在线观看网址入口 | 国产一区日韩二区欧美三区 | 国产一毛片 | 久久丝袜美腿 | 中文字幕久久亚洲一区 | 久久国产成人精品 | 国产一区视频在线 | 中国女人真人一级毛片 | 久热精品在线视频 | 国产的一级片 | 亚欧综合 | 欧美一级特黄特黄毛片 | 久久国产视频在线观看 | 操片免费| 综合国产福利视频在线观看 | 伊人网综合在线观看 | 久久精品最新免费国产成人 | 国产精品高清全国免费观看 | 国产女人综合久久精品视 | 国产视频色 | 欧美一区二区三区婷婷月色 | 成人精品亚洲人成在线 | 亚洲国产精品一区二区久久hs | 成人天堂入口网站 | 亚洲欧美另类在线视频 | 日韩欧美a级高清毛片 | 成人免费视频在线播放 | 亚洲午夜电影一区二区三区 | 国产精品合集一区二区三区 | 免费啪视频一区二区三区 | 日韩欧美中文字幕在线播放 | 青草资源视频在线高清观看 | 不卡视频在线播放 | 麻豆果冻传媒一卡二卡 | 日韩欧美中文字幕在线视频 | 亚洲一区二区三区高清视频 |