在面对选择国家地区,选择手机号码区号等信息的时候,常常我们是读取已存好的数据,我现在读取的就是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 文件的更多相关文章

  1. Android读取Excel文件

    转:http://bigcat.easymorse.com/?p=1648 java可以读取Excel文件,android同样也行,效果如下: excel源文件: 读取日志如下: 首先需要引入jxl. ...

  2. android 读取EXcel 文件 读取文件内存卡的权限

    android 采用Java的读取xls文件的方式实现. 需要导入第三方Jxl.jar 包.  代码改自 其他博主  : 这只摘录下 读取xls文件的部分代码,当然这个代码在安卓平台需要添加下面的权限 ...

  3. C# 读取EXCEL文件的三种经典方法

    1.方法一:采用OleDB读取EXCEL文件: 把EXCEL文件当做一个数据源来进行数据的读取操作,实例如下: public DataSet ExcelToDS(string Path) { stri ...

  4. c# .Net :Excel NPOI导入导出操作教程之读取Excel文件信息及输出

    c# .Net :Excel NPOI导入导出操作教程之读取Excel文件信息及输出 using NPOI.HSSF.UserModel;using NPOI.SS.UserModel;using S ...

  5. ADO.NET 读取Excel文件,并作数据源

    项目中需要用的功能,贴上代码了. 需要注意的地方:配置Web.config的时候要注意版本问题! //若是在Web.config中配置数据源,如下 <add key="ExcelCon ...

  6. PHPExcel读取Excel文件的实现代码

    <?php require_once 'PHPExcel.php'; /**对excel里的日期进行格式转化*/ function GetData($val){ $jd = GregorianT ...

  7. .Net读取Excel文件时丢失数据的问题 (转载)

    相信很多人都试过通过OleDB读取Excel文件,这种方法效率十分高,只是有一点会让人十分头痛,就是当一列中既有混合型数据,又有纯数据时,往往容易丢失数据. 百度过后,改连接字符串 “HDR=YES; ...

  8. 使用jxl,poi读取excel文件

    作用:在java后台添加一个方法,读取导入的excel内容,根据需要返回相应的sql语句,以完成对临时表的插入操作. 使用jxl读取excel文件 package com.sixthf.bi.sapp ...

  9. C# 读取Excel文件里面的内容到DataSet

    摘要:读取Excel文件里面的内容到DataSet 代码: /// <summary> /// 读取Excel文件里面的内容到DataSet /// </summary> // ...

随机推荐

  1. Global 全局样式基本设置

    1.  默认字体设置,边距设置 html { font-family: sans-serif; /* 默认字体 */ font-size: 100%; /* 在用户调整窗口大小时,字体大小做相应调整. ...

  2. CodeFlex AutoUpdate

    http://autoupdaterdotnet.codeplex.com/downloads/get/888100

  3. day1 java基础回顾-内省

    为什么要学内省? 开发框架时,经常需要使用java对象的属性来封装程序的数据,每次都使用反射技术完成此类操作过于麻烦,所以sun公司开发了一套API,专门用于操作java对象的属性. 内省是用于操作j ...

  4. Linux之configure make make install

    正常的编译安装/卸载: 源码的安装一般由3个步骤组成:配置(configure).编译(make).安装(make install).   configure文件是一个可执行的脚本文件,它有很多选项, ...

  5. JVM内存GC的骗局

    此文已由作者尧飘海授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 概述 在日常程序开发中,很多JAVA程度员不太关心内存的使用情况.当然,如果程序员运气较好或者系统没有大规模 ...

  6. Codeforces Round #401 (Div. 2)【A,B,C,D】

    最近状态极差..水题不想写,难题咬不动..哎,CF的题那么简单,还搞崩了= =.真是巨菜无比. Codeforces777A 题意:略. 思路: 构造出3!次变换,然后输出就好. Code: #inc ...

  7. C++ com

    http://www.cnblogs.com/hlxs/p/3783920.html 昨天看了<COM本质论>的第一章"COM是一个更好的C++",觉得很有必要做一些笔 ...

  8. 2014 Noip提高组 Day1

    P1328 生活大爆炸版石头剪刀布 [题目描述] 石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头.如果两个人出拳一样,则不分胜负.在<生活大爆炸>第二季第8 集中出现了一种石头 ...

  9. ORM应用

    目录 ORM概念 ORM由来 ORM的优势 ORM的劣势 ORM总结 ORM 与 DB 的对应关系图 Model 模块 ORM操作 增删改查操作 ORM概念 对象关系映射(Object Relatio ...

  10. python 之 匿名函数

    5.14 匿名函数 lambda x , y : x+y 1 匿名的目的就是要没有名字,给匿名函数赋给一个名字是没有意义的 2 匿名函数的参数规则.作用域关系与有名函数是一样的 3 匿名函数的函数体通 ...