java 讀取Excel(.xls格式)

話不多說,開整!

使用 Workbook 讀取Excel

包:jxl-2.6.12.jar

重點不是下面的一堆代碼,是裏面的方法,

  • 獲取頁籤的數量:  int  sheet_size = wb.getNumberOfSheets();
  • 每個頁籤創建一個Sheet對象: Sheet sheet = wb.getSheet(index);
  • 獲取總行數: int rows = sheet.getRows();
  • 獲取總列數:int columns = sheet.getColumns();
  • 獲取表格中的數據 String cellinfo = sheet.getCell(j, i).getContents();

注意:我這裏因爲項目需要,是一列一列讀取的,需要一行一行讀取的小夥伴,請使用上面的方法自行編寫即可

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;

import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
public class ReadExcel {

	// 去讀Excel的方法readExcel,該方法的入口參數爲一個File對象
	@SuppressWarnings({ "rawtypes", "unchecked", "unused" })
	public static List<List> readExcel(File file) {
		try {
			// 創建輸入流,讀取Excel
			InputStream is = new FileInputStream(file.getAbsolutePath());
			// jxl提供的Workbook類
			Workbook wb = Workbook.getWorkbook(is);
			// Excel的頁籤數量
			int sheet_size = wb.getNumberOfSheets();
			for (int index = 0; index < sheet_size; index++) {
				List<List> outerList = new ArrayList<List>();
				// 每個頁籤創建一個Sheet對象
				Sheet sheet = wb.getSheet(index);
				// sheet.getRows()返回該頁的總行數
				for (int i = 0; i < sheet.getRows(); i++) {
					List innerList = new ArrayList();
					// sheet.getColumns()返回該頁的總列數
					for (int j = 0; j < sheet.getColumns(); j++) {
						String cellinfo = sheet.getCell(j, i).getContents();
//						if (cellinfo.isEmpty()) {
//							continue;
//						}
						innerList.add(cellinfo);
					}
					outerList.add(i, innerList);
				}
				return outerList;
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (BiffException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return null;
	}
}

 

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