1. 程式人生 > >java 向已有的excel表中追加資料【一列一列的新增】

java 向已有的excel表中追加資料【一列一列的新增】

	/**
	 * 向已有的工作表的追加資料
	 * @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);


		}


	}