1. 程式人生 > >java poi excel操作 下拉菜單 及數據有效性

java poi excel操作 下拉菜單 及數據有效性

合同 pda ear pre log mean color 名稱 ons


1
private InputStream updateTemplateStyleHSSF(InputStream inputStream,CsCustCon csCustCon) throws IOException, DAOException{ 2 HSSFWorkbook workbook = new HSSFWorkbook(inputStream); 3 HSSFSheet firstSheet= workbook.getSheetAt(0); 4 List<String> strList=csConAcceDao.getAcceNameAndNoListByConId(csCustCon);
5 String[] strs=(String[])strList.toArray(new String[strList.size()]); 6 7 String secondSheetName="合同附件名稱和編號"; 8 HSSFSheet secondSheet= workbook.createSheet(secondSheetName); 9 if(null!=strs&&strs.length>0){ 10 for(int i=0;i<strs.length;i++){
11 HSSFRow row=secondSheet.createRow(i); 12 HSSFCell cell= row.createCell(0); 13 cell.setCellValue(strs[i]); 14 } 15 } 16 Name name=workbook.createName(); 17 name.setNameName(secondSheetName); 18 name.setRefersToFormula(secondSheetName+"!$A$1:$A$"+strs.length);
19 CellRangeAddressList newStyleRange=new CellRangeAddressList(1,65535,0,0); 20 DVConstraint constraint=DVConstraint.createFormulaListConstraint(secondSheetName); 21 HSSFDataValidation dataValidation=new HSSFDataValidation(newStyleRange, constraint); 22 dataValidation.setShowPromptBox(true); 23 firstSheet.addValidationData(dataValidation); 24 25 ByteArrayOutputStream out=new ByteArrayOutputStream(); 26 workbook.write(out); 27 byte[] contents=out.toByteArray(); 28 InputStream newInputStream= new ByteArrayInputStream(contents); 29 return newInputStream; 30 }

需求說明:excel 第一頁 第一列為下拉菜單 菜單的數據在第二頁全部顯示出來

如果 在第二頁刪除了一項 保存後 第一頁第一列下拉菜單中 的數據就少一項

List<String> strList=csConAcceDao.getAcceNameAndNoListByConId(csCustCon);

這行代碼為 返回下拉菜單中的數據

參數

InputStream inputStream 為 file 對象生成的   file 對象則是 對應的要解析的excel 生成的

 ByteArrayOutputStream out=new ByteArrayOutputStream();
         workbook.write(out);
         byte[] contents=out.toByteArray();
         InputStream newInputStream= new ByteArrayInputStream(contents);     
         return newInputStream;

這段代碼為 excel 更新後 重新保存 excel 文件

另:

HSSFWorkbook  對象 只能處理 2003及以前版本
XSSFWorkbook 對象  處理 2007及以後版本 

java poi excel操作 下拉菜單 及數據有效性