Android 读取excel 文件
在面对选择国家地区,选择手机号码区号等信息的时候,常常我们是读取已存好的数据,我现在读取的就是excel里面的数据,所以在此记录下读取的方法以及注意点。
下面就是读取国际地区手机区号的数据效果图:
excel表格里面数据
1.准备工作
1.1 excel 表格
我在assets 下放的的excel 表
1.2 读取excel 需要的jar 包
下载地址:jxl 读取excel 需要的jar 包
注意点:
assets 的目录不要建错,他是在main 级别目录下的,建错地方会读取不到文件。
2.相关代码
2.1 读取excel
/**
* 获取 excel 表格中的数据,不能在主线程中调用
*
* @param xlsName excel 表格的名称
* @param index 第几张表格中的数据
*/
private ArrayList<CountryModel> getXlsData(String xlsName, int index) {
ArrayList<CountryModel> countryList = new ArrayList<CountryModel>();
AssetManager assetManager = getAssets(); try {
Workbook workbook = Workbook.getWorkbook(assetManager.open(xlsName));
Sheet sheet = workbook.getSheet(index); int sheetNum = workbook.getNumberOfSheets();
int sheetRows = sheet.getRows();
int sheetColumns = sheet.getColumns(); Log.d(TAG, "the num of sheets is " + sheetNum);
Log.d(TAG, "the name of sheet is " + sheet.getName());
Log.d(TAG, "total rows is 行=" + sheetRows);
Log.d(TAG, "total cols is 列=" + sheetColumns); for (int i = ; i < sheetRows; i++) {
CountryModel countryModel = new CountryModel();
countryModel.setChinaName(sheet.getCell(, i).getContents());
countryModel.setEnglishName(sheet.getCell(, i).getContents());
countryModel.setAreaNumber(sheet.getCell(, i).getContents()); countryList.add(countryModel);
} workbook.close(); } catch (Exception e) {
Log.e(TAG, "read error=" + e, e);
} return countryList;
} //在异步方法中 调用
private class ExcelDataLoader extends AsyncTask<String, Void, ArrayList<CountryModel>> { @Override
protected void onPreExecute() {
progressDialog.setMessage("加载中,请稍后......");
progressDialog.setCanceledOnTouchOutside(false);
progressDialog.show();
} @Override
protected ArrayList<CountryModel> doInBackground(String... params) {
return getXlsData(params[], );
} @Override
protected void onPostExecute(ArrayList<CountryModel> countryModels) {
if (progressDialog.isShowing()) {
progressDialog.dismiss();
} if(countryModels != null && countryModels.size()>){
//存在数据
sortByName(countryModels);
setupData(countryModels);
}else {
//加载失败 } }
}
说明
sheet.getCell(, i).getContents() 表示第0行第1列的数据,因为事先是知道excel 表中的内容的,所以行和列自己定义就好了。
2.2 相关调用
new ExcelDataLoader().execute("phone_country_info.xls");
2.3 结果显示
Android 读取excel 文件的更多相关文章
- Android读取Excel文件
转:http://bigcat.easymorse.com/?p=1648 java可以读取Excel文件,android同样也行,效果如下: excel源文件: 读取日志如下: 首先需要引入jxl. ...
- android 读取EXcel 文件 读取文件内存卡的权限
android 采用Java的读取xls文件的方式实现. 需要导入第三方Jxl.jar 包. 代码改自 其他博主 : 这只摘录下 读取xls文件的部分代码,当然这个代码在安卓平台需要添加下面的权限 ...
- C# 读取EXCEL文件的三种经典方法
1.方法一:采用OleDB读取EXCEL文件: 把EXCEL文件当做一个数据源来进行数据的读取操作,实例如下: public DataSet ExcelToDS(string Path) { stri ...
- c# .Net :Excel NPOI导入导出操作教程之读取Excel文件信息及输出
c# .Net :Excel NPOI导入导出操作教程之读取Excel文件信息及输出 using NPOI.HSSF.UserModel;using NPOI.SS.UserModel;using S ...
- ADO.NET 读取Excel文件,并作数据源
项目中需要用的功能,贴上代码了. 需要注意的地方:配置Web.config的时候要注意版本问题! //若是在Web.config中配置数据源,如下 <add key="ExcelCon ...
- PHPExcel读取Excel文件的实现代码
<?php require_once 'PHPExcel.php'; /**对excel里的日期进行格式转化*/ function GetData($val){ $jd = GregorianT ...
- .Net读取Excel文件时丢失数据的问题 (转载)
相信很多人都试过通过OleDB读取Excel文件,这种方法效率十分高,只是有一点会让人十分头痛,就是当一列中既有混合型数据,又有纯数据时,往往容易丢失数据. 百度过后,改连接字符串 “HDR=YES; ...
- 使用jxl,poi读取excel文件
作用:在java后台添加一个方法,读取导入的excel内容,根据需要返回相应的sql语句,以完成对临时表的插入操作. 使用jxl读取excel文件 package com.sixthf.bi.sapp ...
- C# 读取Excel文件里面的内容到DataSet
摘要:读取Excel文件里面的内容到DataSet 代码: /// <summary> /// 读取Excel文件里面的内容到DataSet /// </summary> // ...
随机推荐
- wamp + wordpress 安装
WAMP是一个windows上的php开发集成环境,一键安装php,apache和mysql,非常方便. 双击wampserver2.2exxxxxxxxxx.exe文件进行安装,安装过程中直接下一步 ...
- ceph应用情况分析
1.概述 ceph是分布式的开源存储系统,同时支持块存储.对象存储和文件系统,ceph可以满足高性能.高可靠性和高扩展等特性. 目前ceph作为开源分布式存储已经被大量使用,尤其是在云环境下的应用,下 ...
- html中连续点击某个标签会出现蓝色的解决方法
给标签加上下面的属性就可以了,也可以把这些属性建立一个class名,谁需要的时候加上也ok -moz-user-select: none; /*mozilar*/ -webkit-user-selec ...
- 教你如何暴力破解-telnet ftp ssh mysql mssql vnc 等
大家应该都知道暴力破解的原理,但却不知道遇见telnet和ftp等服务和数据库如何破解,今天小R就教大家如何利用一个工具就能对其破解. 今天要给大家介绍的工具是:hydra(中文名:九头蛇) 这个名听 ...
- mysql的索引key_len计算方法,及个字段所占字节数
key_len的长度计算公式: varchr(10)变长字段且允许NULL = 10 * ( character set:utf8=3,gbk=2,latin1=1)+1(NULL)+2(变长字段) ...
- 51nod1205(johnson)
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1205 题意:中文题诶- 思路:johnson模板题 流水作业调 ...
- 2017-9-13 NOIP模拟赛[xxy]
全排列 (permutation.cpp/c/pas)Description从 n 个不同元素中任取 m(m≤n)个元素,按照一定的顺序排列起来,叫做从 n个不同元素中取出 m 个元素的一个排列.当 ...
- P1291-添加括号(区间dp)
题目背景 给定一个正整数序列a(1),a(2),...,a(n),(1<=n<=20) 不改变序列中每个元素在序列中的位置,把它们相加,并用括号记每次加法所得的和,称为中间和. 例如: 给 ...
- MyBatis入门学习笔记(一)
一.什么是MyBatis? Mybatis是一种“半自动化”的ORM实现,支持定制化 SQL.存储过程以及高级映射. 二.hibernate和mybatis对比 共同:采用ORM思想解决了实体和数据库 ...
- [LOJ3054] 「HNOI2019」鱼
[LOJ3054] 「HNOI2019」鱼 链接 链接 题解 首先想 \(O(n^3)\) 的暴力,不难发现枚举 \(A\) 和 \(D\) 后, \((B,C)\) 和 \((E,F)\) 两组点互 ...