Java 读取Excel表格数据(使用工具:AndroidStudio )

16 篇文章 0 订阅
14 篇文章 0 订阅

Part One 前情提要

本文是使用AndroidStudio来编写代码,来实现对Excel表格中的数据读取。

实际工作开发中我们可能需要从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类 方法

  1. 创建一个Excel文件
    createWorkbook()
  2. 获取(打开)一个Excel文件
    getWorkbook()
  3. 查某一个或所有Sheet
    getSheets(int index) // 根据索引 得到一个Sheet
    getSheets(String sheetName) // 根据Sheet名称 得到一个Sheet
    getSheets() // 所有Sheet
  4. 查找一个Cell
    findCellByName(String name)
    getCell(String name)
  5. 获取符合条件的Cell,包装成了一个Range类型了
    Range[] findByName(String name)
  6. 其他操作

5.Sheet类 方法

  1. 获取某一个Cell
  2. 获取某一列的所有Cell
  3. 获取某一行的所有Cell
  4. 获取符合条件的所有Cell
  5. 获取某一个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表格数据截图:
这里写图片描述

  • 8
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值