1. 程式人生 > >Java 讀取Excel表格資料(使用工具:AndroidStudio )

Java 讀取Excel表格資料(使用工具:AndroidStudio )

實際工作開發中我們可能需要從Excel表格中讀取資料,以實現實際需求。比如:

1.將Excel表格中的資料匯入資料庫中(可能不是完全按照表格中的現有資料格式) 
2.將Excel表格中的資料讀出來,進行一些操作只後,再寫回Excel表格中 
3.單純的讀取資料 
… …

總會有那麼一天可能你也要和Excel打打交道,所以現在如果你有時間可以先來學習一下,瞭解一下。充實一下自己。

注:突然需要是用Excel,主要也是因為最近公司計劃玩一玩大資料。所以這幾天需要使用Excel造一些假資料(因為老闆們不熟悉資料庫,我總不能給他們一人一個sql吧),所以也算是沒有辦法,只能把資料填寫到Excel中了。

Part Two 主角登場
操作步驟: 
1.下載讀取Excel需要引用的jar包

下載jar包:jxl.jar,點選下載jxl.jar

2.下載好需要的jar包以後,接下來我們使用AndroidStudio建立一個Project。建立好了以後,我們下載下來的jar包新增到專案中。 
新增結果如下: 


3.接下來就是使用這個jar中的工具類來進行,Excel表格的操作了。

對Excel表格操作主要使用到jar中的3個類 
jxl.Workbook Excel檔案類實體

程式碼示例: 
// “data_table.xls” 相對路徑或者絕對路徑均可以 
Workbook book = Workbook.getWorkbook(new File(“data_table.xls”)); 
// “data_table.xls” android專案中assets目錄中 檔名 
Workbook book = Workbook.getWorkbook(assetManager.open(“data_table.xls”));

jxl.Sheet 表格類

程式碼示例: 
//獲得第一個工作表物件(ecxel中sheet的編號從0開始,0,1,2,3,….) 
Sheet sheet = book.getSheet(0);

jxl.Cell 單元格類

程式碼示例: 
// 獲取第0行第0列的一個單元格(表格左上角第一個單元格) 
Cell cell = sheet.getCell(0, 0); //(列,行)

4.Workbook類 方法

建立一個Excel檔案 
createWorkbook()
獲取(開啟)一個Excel檔案 
getWorkbook()
查某一個或所有Sheet 
getSheets(int index) // 根據索引 得到一個Sheet 
getSheets(String sheetName) // 根據Sheet名稱 得到一個Sheet 
getSheets() // 所有Sheet
查詢一個Cell 
findCellByName(String name) 
getCell(String name)
獲取符合條件的Cell,包裝成了一個Range型別了 
Range[] findByName(String name)
其他操作
5.Sheet類 方法

獲取某一個Cell
獲取某一列的所有Cell
獲取某一行的所有Cell
獲取符合條件的所有Cell
獲取某一個CellView,CellView 用來控制單元格的格式
6.Cell類 方法

getRow 所在行 
getColumn 所在列 
getType Cell型別 
isHidden 是否被隱藏 
getContents 獲取內容 
getCellFormat 獲取單元格格式 
getCellFeatures 獲取單元格特徵

Part Three 示例程式碼
程式碼中的User的屬性欄位就是表格中的titles 
Activity 中:AssetManager assetManager = getAssets();

    // 讀取使用者表
    public List<User> getUserFromSheet() {

        List<User> users = new ArrayList<>();

        int i;
        Workbook book;
        Sheet sheet;
        Cell U_ID, U_NAME, U_NICK_NAME, U_AGE, U_SEX, U_PHONE_NUM, U_EMAIL, U_PHONE_TYPE, SHOPPING_HISTORY_ID;

        try {
            //hello.xls為要讀取的excel檔名  
            book = Workbook.getWorkbook(assetManager.open("data_table.xls"));

            //獲得第一個工作表物件(ecxel中sheet的編號從0開始,0,1,2,3,....)  
            sheet = book.getSheet(0);
            //獲取左上角的單元格  
            U_ID = sheet.getCell(0, 0);

            i = 1;
            while (i < 102) {

                //獲取每一行的單元格   
                U_ID = sheet.getCell(0, i);//(列,行)
                U_NAME = sheet.getCell(1, i);
                U_NICK_NAME = sheet.getCell(2, i);
                U_AGE = sheet.getCell(3, i);
                U_SEX = sheet.getCell(4, i);
                U_PHONE_NUM = sheet.getCell(5, i);
                U_EMAIL = sheet.getCell(6, i);
                U_PHONE_TYPE = sheet.getCell(7, i);
                SHOPPING_HISTORY_ID = sheet.getCell(8, i);

                User user = new User();
                user.setU_ID(Integer.parseInt(U_ID.getContents()));
                user.setU_NAME(U_NAME.getContents());
                user.setU_NICK_NAME(U_NICK_NAME.getContents());
                user.setU_AGE(Integer.parseInt(U_AGE.getContents()));
                user.setU_SEX(U_SEX.getContents());
                user.setU_PHONE_NUM(U_PHONE_NUM.getContents());
                user.setU_EMAIL(U_EMAIL.getContents());
                user.setU_PHONE_TYPE(U_PHONE_TYPE.getContents());
                user.setSHOPPING_HISTORY_ID(Integer.parseInt(SHOPPING_HISTORY_ID.getContents()));

                users.add(user);
                i++;
            }
            book.close();
        } catch (Exception e) {
        }

        return users;
    }

Excel表格資料截圖: 

--------------------- 
作者:uana_777 
來源:CSDN 
原文:https://blog.csdn.net/uana_777/article/details/80626958 
版權宣告:本文為博主原創文章,轉載請附上博文連結!