国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

java - Web開發 - POI導出帶有下拉框的Excel和解決下拉中數組過多而產生的異常

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

問題描述

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

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

2、問題是如果下拉的數組過多,POI會出現如下異常信息:

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

這個問題的解決辦法網上不好查到,所以我將解決辦法貼在下面

問題解答

回答1:

下面是解決辦法:

/** * Excel API */ @SuppressWarnings('resource') HSSFWorkbook book = new HSSFWorkbook(); HSSFSheet sheet = book.createSheet('spu導入模板'); /** * 初始化參數 */ Map<String, String> map = new HashMap<String, String>(); // 查詢時用的map List<Object> list = null; String[] strs = null; // 用于下拉的數組 String hiddenSheet = null; int cellNum = 0; int startRow = 1; // 開始行 int endRow = 100; // 結束行 DVConstraint constraint = null; CellRangeAddressList addressList = null; HSSFDataValidation validation = null; // 數據驗證 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); // 創建隱藏域 for (int i = 0, length = strs.length; i < length; i++) { // 循環賦值(為了防止下拉框的行數與隱藏域的行數相對應來獲取>=選中行數的數組,將隱藏域加到結束行之后)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代表隱藏域創建第?列createCell(?)時。以A1列開始A行數據獲取下拉數組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);

請注意上面的這倆個地方:

java - Web開發 - POI導出帶有下拉框的Excel和解決下拉中數組過多而產生的異常

java - Web開發 - POI導出帶有下拉框的Excel和解決下拉中數組過多而產生的異常java - Web開發 - POI導出帶有下拉框的Excel和解決下拉中數組過多而產生的異常

標簽: excel
相關文章:
主站蜘蛛池模板: 深夜福利国产福利视频 | 欧美成人午夜片一一在线观看 | 99视频福利 | 亚州国产 | 国产男女交性视频播放免费bd | 国产精品久久久久久久久久98 | 欧美成人性色大片在线观看 | 7777在线视频 | 国产精品久久久久久一区二区三区 | 日韩在线二区 | 成人性版蝴蝶影院污 | 亚洲一区二区三区欧美 | 92手机看片福利永久国产 | 欧美做爰野外在线视频观看 | 日本视频免费在线播放 | 一级特级aaaa毛片免费观看 | 久久国产成人午夜aⅴ影院 久久国产成人亚洲精品影院老金 | 草草影院www色欧美极品 | 自拍 欧美 在线 综合 另类 | 手机在线看a | 久久观看 | 成人永久福利在线观看不卡 | 成人黄色一级片 | 日韩a无吗一区二区三区 | 久久一二 | 欧美精品在线视频观看 | 日韩在线网 | 韩国免费播放一级毛片 | 成人 在线欧美亚洲 | 久久九九国产精品怡红院 | 一级做a爰片久久毛片人呢 一级做a爰片久久毛片唾 | 99re久久资源最新地址 | 亚洲午夜网站 | 国产成人综合95精品视频免费 | 91精品成人免费国产 | 美女张开大腿让男人桶 | 久久精品视频免费观看 | 国产精品1区 2区 3区 | 欧美三级在线观看视频 | 日本精高清区一 | 不卡午夜|