java 向已有的excel表中追加資料【一列一列的新增】
阿新 • • 發佈:2019-02-19
/** * 向已有的工作表的追加資料 * @param exportFilePath * 伺服器上面的模版excel檔案 * @param list * 需要追加的資料檔案 */ public static <T> void addDataToExcel(String exportFilePath,List<T> list,String title) { FileInputStream fs; try { fs = new FileInputStream(exportFilePath); POIFSFileSystem ps; try { ps = new POIFSFileSystem(fs); HSSFWorkbook wb = new HSSFWorkbook(ps); // 獲取到工作表,因為一個excel可能有多個工作表 HSSFSheet sheet = wb.getSheetAt(0); // 向xls檔案中寫資料 FileOutputStream out = new FileOutputStream(exportFilePath); //設定標頭 HSSFRow row_1 = sheet.getRow(0); int startColumn=row_1.getLastCellNum(); row_1.createCell(startColumn).setCellValue(title); for (int i = 1; i < 26; i++) { // 獲取第i行(excel中的行預設從0開始,所以這就是為什麼,一個excel必須有欄位列頭),即,欄位列頭,便於賦值 HSSFRow row = sheet.getRow(i); // row = sheet.createRow(i); // 在現有行號後追加資料 row.createCell(startColumn).setCellValue(Integer.parseInt(list.get(i).toString())); // 設定第二個(從0開始)單元格的資料 } out.flush(); wb.write(out); out.close(); } catch (IOException e) { logger.error("向excel中寫入資料時發生IO異常,異常如下:{}",e); } } catch (FileNotFoundException e) { logger.error("向excel中寫入資料時發生找不到檔案的異常,異常如下:{}",e); } }