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

发布于:2021-10-16 13:27:56

Part One 前情提要

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


实际工作开发中我们可能需要从Excel表格中读取数据,以实现实际需求。比如:



1.将Excel表格中的数据导入数据库中(可能不是完全按照表格中的现有数据格式)
2.将Excel表格中的数据读出来,进行一些操作只后,再写回Excel表格中
3.单纯的读取数据
… …



总会有那么一天可能你也要和Excel打打交道,所以现在如果你有时间可以先来学*一下,了解一下。充实一下自己。



注:突然需要是用Excel,主要也是因为最*公司计划玩一玩大数据。所以这几天需要使用Excel造一些假数据(因为*迕遣皇煜な菘猓易懿荒芨且蝗艘桓鰏ql吧),所以也算是没有办法,只能把数据填写到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 getUserFromSheet() {

List 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表格数据截图:

相关推荐

最新更新

猜你喜欢