日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

POI增加 数据验证 下拉

發(fā)布時間:2023/11/30 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 POI增加 数据验证 下拉 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

POI增加驗證列

List<String> nationality = new ArrayList<String>();List<String> last_education = new ArrayList<String>();List<String> graduated_yotei = new ArrayList<String>();List<String> entrance_period = new ArrayList<String>();List<String> sexList = new ArrayList<String>(); Map<int[],List<String>> dataMap = new HashMap<int[],List<String>>();dataMap.put(new int[]{1,2000,5,5},nationality);dataMap.put(new int[]{1,2000,8,8},last_education);dataMap.put(new int[]{1,2000,17,17},graduated_yotei);dataMap.put(new int[]{1,2000,13,13},courseNames);dataMap.put(new int[]{1,2000,6,6},sexList);dataMap.put(new int[]{1,2000,12,12},entrance_period);//ExcelUtil.setSheetDropList(xlsTemplateFileName, outputFileName, dataMap, 0);ExcelUtil.setSheetDropList(xlsTemplateFileName, outputFileName, dataMap, 0,1);

?

public static void setSheetDropList(String xlsTemplateFileName, String outputFileName,Map<int[],List<String>> dataMap,int sheetIndex,int hideSheetIndex) throws IOException {FileInputStream fileInputStream = new FileInputStream(xlsTemplateFileName);FileUtils.forceMkdirParent(new File(outputFileName));if(xlsTemplateFileName.toLowerCase().endsWith("xlsx")){// ファイルの読み込みXSSFWorkbook workbook = new XSSFWorkbook(fileInputStream);// hide sheet を取得するXSSFSheet hideSheet = workbook.getSheetAt(hideSheetIndex);String hideSheetName = hideSheet.getSheetName();//setValue(Sheet sheet, int rowIndex, int cellIndex, Object value)// sheetを取得するXSSFSheet sheet = workbook.getSheetAt(sheetIndex);XSSFDataValidationHelper dvHelper = new XSSFDataValidationHelper(sheet);for (Map.Entry<int[],List<String>> entry : dataMap.entrySet()) {int[] postions = entry.getKey();List<String> list = entry.getValue();if(list == null || list.size()==0) {continue;}//{1,2000,8,8}for(int i=0;i<list.size();i++) {int rowIndex = postions[0]+ i;int cellIndex = postions[2] ;String value = list.get(i);setValue(hideSheet,rowIndex,cellIndex,value);}String[] array = new String[list.size()];String[] data=list.toArray(array);// ボックスのオプションのデータは、制約としてXSSFDataValidationConstraint dvConstraint =(XSSFDataValidationConstraint) dvHelper.createExplicitListConstraint(data); //new String[]{"a", "b", "c"}// ドロップダウンボックスの範囲に設(shè)定するCellRangeAddressList addressList =new CellRangeAddressList(postions[0],postions[1],postions[2],postions[3]);// DataValidationオブジェクトを作成する /* XSSFDataValidation validation =(XSSFDataValidation)dvHelper.createValidation(dvConstraint, addressList);validation.setShowErrorBox(true);*///String strFormula = "temp!$A$1:$A$100";String lie = excelColIndexToStr(postions[2]+1);String heng_start = (postions[0]+1) +"";String heng_end =( postions[0] + list.size()) + "";String strFormula = hideSheetName +"!$"+lie +"$" + heng_start + ":$"+lie + "$"+heng_end;// =$F$2:$F$7XSSFDataValidationConstraint constraint = new XSSFDataValidationConstraint(ValidationType.LIST,strFormula);XSSFDataValidation validation = (XSSFDataValidation)dvHelper.createValidation(constraint, addressList);sheet.addValidationData(validation);// 指定したワークシートに作用するsheet.addValidationData(validation);}FileOutputStream stream = new FileOutputStream(outputFileName);workbook.write(stream);stream.close();workbook.close();}else if(xlsTemplateFileName.toLowerCase().endsWith("xls")) {// ファイルの読み込みHSSFWorkbook workbook = new HSSFWorkbook(fileInputStream);// hide sheet を取得するHSSFSheet hideSheet = workbook.getSheetAt(hideSheetIndex);// sheetを取得するHSSFSheet sheet = workbook.getSheetAt(0);HSSFDataValidationHelper dvHelper = new HSSFDataValidationHelper(sheet);for (Map.Entry<int[],List<String>> entry : dataMap.entrySet()) {int[] postions = entry.getKey();List<String> list = entry.getValue();//{1,2000,8,8}for(int i=0;i<list.size();i++) {int rowIndex = postions[0]+ i;int cellIndex = postions[2] ;String value = list.get(i);setValue(hideSheet,rowIndex,cellIndex,value);}String[] array = new String[list.size()];String[] data=list.toArray(array);// ボックスのオプションのデータは、制約としてDataValidationConstraint dvConstraint =dvHelper.createExplicitListConstraint(data);// ドロップダウンボックスの範囲に設(shè)定するCellRangeAddressList addressList =new CellRangeAddressList(postions[0],postions[1],postions[2],postions[3]);// DataValidationオブジェクトを作成するHSSFDataValidation validation =(HSSFDataValidation)dvHelper.createValidation(dvConstraint, addressList);validation.setShowErrorBox(true);// 指定したワークシートに作用するsheet.addValidationData(validation);}FileOutputStream stream = new FileOutputStream(outputFileName);workbook.write(stream);stream.close();workbook.close();}}

?

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的POI增加 数据验证 下拉的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。