Java 使用 POI 對 Excel文件 進行讀寫操作

                                                               Java 使用 POI 對 Excel文件 進行讀寫操作

一、背景

         目前正在做一個問卷功能模塊,收集完問卷信息後,需要將數據庫中的數據導出到Excel數據表中進行留存,因此就學習了在Java中如何對Excel表進行讀寫操作。經過了解後選擇了 POI 技術,這個 POI項目是Apache(POI鏈接)下面的一個項目,用於處理Excel和Java的數據對接操作。

二、使用方法

      2.1 Excel 文檔結構

      對於 Excel 我們並不陌生,它是 Microsoft 公司下的一款表格處理軟件。一個Excel文件的結構層次是:Excel工作簿(也就是我們說的Excel文件) -> 工作表 -> 單元格(一行一列組成一個單元格)。我們通常使用Excel的步驟,總是 新建一個Excel文件,然後建立一個工作表,然後再向工作表中的單元格寫入數據。

2.2  POI對象介紹

       Excel文件的結構層次,對應了POI的幾個對象,分別是HSSFWorkbook,HSSFSheet,HSSFRow,HSSFCell。通過這幾個對象,我們就可以處理Excel數據了。一般流程是:首先,新建一個HSSFWorkbook,然後建立一個或者多個HSSFSheet,然後再建立一個或者多個HSSFRow,最後建立一個或者多個HSSFCell。

2.3  寫入數據

// 寫入數據
public static void poiWrite() {
	//新建 Excel工作簿對象
	HSSFWorkbook workbook = new HSSFWorkbook();
	//新建工作表
	HSSFSheet sheet = workbook.createSheet("test");
	//建立表格的行
	HSSFRow rHssfRow = sheet.createRow(0);
	//建立表格的列,這樣行列數據有了,就確定了一個單元格,可以寫入數據了
	HSSFCell cell = rHssfRow.createCell(0);
	cell.setCellValue("姓名");
	//寫入到具體的文件數據中
	FileOutputStream xlsStream = null;
	try {
		xlsStream = new FileOutputStream(new File("C:\\Users\\itour\\Desktop\\poiTest.xls"));
		workbook.write(xlsStream);
	} catch (IOException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}finally {
		if (xlsStream != null) {
			try {
				xlsStream.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
}

2.4  讀取數據

// 讀取數據
public static void poiRead() {
	FileInputStream xlsStream = null;
	try {
		// Excel工作簿 輸入流
		xlsStream = new FileInputStream(new File("C:\\Users\\itour\\Desktop\\poiTest.xls"));
		// 構造工作簿對象
		HSSFWorkbook hssfWorkbook = new HSSFWorkbook(xlsStream);
		// 獲取工作表,這裏獲取的是第一個sheet,
		// 如果一個工作薄對象有多個sheet的話,就需要遍歷獲取多個
		HSSFSheet sheetAt = hssfWorkbook.getSheetAt(0);
		// 獲取行,行號作爲參數傳遞給getRow方法
		HSSFRow row = sheetAt.getRow(0);
		// 獲取單元格,row已經確定了行號,列號作爲參數傳遞給getCell,就可以獲得相應的單元格了
		HSSFCell cell = row.getCell(0);
		// 獲取單元格的值
		String cellValue = cell.getStringCellValue();
		System.out.println("獲取到的數據是:" + cellValue);

	} catch (FileNotFoundException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	} catch (IOException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}finally {
		if (xlsStream != null) {
			try {
				xlsStream.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
}

結果如下圖:

三、說明

 1,上面只是一個最簡單的案例,如果想要了解進一步的操作,可以查看官方文檔。

 2,POI 可以對 Excel 數據進行基本的格式美化,例如 我們可以設置標題和單元格等的格式樣式 ,以滿足我們的需求。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章