標籤:ddr cep 名稱 exce gets latest inpu setname put
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操作 下拉式功能表 及資料有效性