本文使用jxl.jar工具類庫實現讀取Excel中指定列的數據。
jxl.jar是通過java操作excel表格的工具類庫,是由java語言開發而成的。這套API是純Java的,並不依賴Windows系統,即使運行在Linux下,它同樣能夠正確的處理Excel文件。
- 支持Excel 95-2000的所有版本
- 生成Excel 2000標准格式
- 支持字體、數字、日期操作
- 能夠修飾單元格屬性 支持圖像和圖表
jxl操作Excel包括對象Workbook(工作簿),Sheet(工作表) ,Cell(單元格)。一個Excel就對應一Workbook對象,一個Workbook可以有多個Sheet對象,一個Sheet對象可以有多個Cell對象。其主要的API說明如下:
新建並獲取工作薄:
Workbook workbook = Workbook.getWorkbook(inputStream);
讀取工作表:
workbook.getSheet(int index);//index從0開始,0對應Sheet1
獲取單元格:
sheet.getCell(int columnIndex, int rowIndex);
讀取單元格內容:
cell.getContents();
代碼如下:
/** * 讀取excel表格中特定的列 * * @param file * 文件 * @param index * 第index列(0開始) * @throws Exception */ public static void readColumn(File file, int index) throws Exception { InputStream inputStream = new FileInputStream(file.getAbsoluteFile()); Workbook workbook = Workbook.getWorkbook(inputStream); Sheet sheet = workbook.getSheet(0); int rows = sheet.getRows(); int columns = sheet.getColumns(); for (int i = 1; i < rows; i++) { Cell cell = sheet.getCell(index, i); System.out.println(cell.getContents()); } }
用桌面上的一個Excel文件進行測試:
public static void main(String[] args) { File file = new File("C:\\Users\\Administrator\\Desktop\\世界名著.xlsx"); try { System.out.println("正在讀取書名..."); readColumn(file, 0);//讀取第一列 System.out.println("讀取完畢"); } catch (Exception e) { e.printStackTrace(); } }
奇怪,竟然報錯了:

這是使用jxl時一個需要注意的地方,jxl只支持Excel 95-2000 工作簿(*.xls),不支持Excel 工作簿(*.xlsx)。解決辦法是把文件另存為xls的格式,注意一定要打開Excel文件再進行“另存為”操作,直接改后綴名是不可以的!
注意代碼中也要相應的改一下,更改以后進行再次進行測試:

對比二者,完美!
