Java讀取Excel指定列的數據詳細教程和注意事項


本文使用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文件再進行“另存為”操作,直接改后綴名是不可以的!

注意代碼中也要相應的改一下,更改以后進行再次進行測試:

對比二者,完美!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM