日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

POI增加 数据验证 下拉

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

POI增加驗(yàn)證列

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"}// ドロップダウンボックスの範(fàn)囲に設(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);// ドロップダウンボックスの範(fàn)囲に設(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)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

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

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