Android 中读取Excel文件实例详解
Android 中读取Excel文件实例详解
最近有个需求需要在app内置数据,新来的产品扔给了我两个Excel表格就不管了(两个表格格式还不统一。。。),于是通过度娘等方法找到了Android中读取Excel表格文件的一种方法,记录一下。
闲话一下Excel中工作簿和工作表的区别:
工作簿中包含有工作表。工作簿可以由一张或多张工作表组成,一个工作簿就是一个EXCEL表格文件。
好了,开始读取表格文件吧。
前提
首先,我们假设需要读取的表格文件名字为test.xls, 位于assets根目录下。
所需Jar包
这里为了能读取到Excel表格文件,我们要添加一个第三方Jar包jxl。
这里有点儿需要注意的地方:由于表格文件格式较多,老版本的jxl后只支持Excel2003版本的,所以如果拿到的表格文件格式是xlsm或者xlsn之类的,我们首先要把文件另存为xls格式。
开始读取
1.初始化变量:
InputStream inputStream = null;//输入流 FileOutputStream outputStream = null;//输出流 Workbook book = null;//Excel工作簿对象
2.以流的方式读取我们内置在assets目录下的表格文件
inputStream = context.getAssets().open("test.xls");
3.将上一步的输入流读取成一个文件,方便后续使用
File tempFile = new File(context.getCacheDir(), "test.xls");//临时文件,第二个参数为文件名字,可随便取 outputStream = new FileOutputStream(tempFile); byte[] buf = new byte[1024]; int len; while ((len = inputStream.read(buf)) > 0) {//while循环进行读取 outputStream.write(buf, 0, len); } outputStream.close(); inputStream.close();
4.得到Excel文件对象后,就可以利用jxl包中提供的各种方法来操作表格文件。jxl提供的方法很多,这里简单介绍下项目中用到的几个。
book = Workbook .getWorkbook(tempFile);//用读取到的表格文件来实例化工作簿对象(符合常理,我们所希望操作的就是Excel工作簿文件) Sheet[] sheets = book.getSheets(); //得到所有的工作表 for (int m = 0; m < sheets.length; m++) { Sheet sheet = book.getSheet(m); int Rows = sheet.getRows();//得到当前工作表的行数 int Cols = sheet.getColumns(); //得到当前工作表的列数 for (int i = 0; i < Cols; i++) { // 注意:这里是按列读取的!!! for (int j = 0; j < Rows; j++) { String content=sheet.getCell(i, j).getContents();//结果是String类型的,根据具体需求进行类型转换 } } }
总结
如果表格文件是内置在assets目录下的话,按照以上流程读取即可,如果是在sd卡之类的话,步骤基本一致,都是首先得到我们的表格文件,然后得到工作簿对象,对其进行操作。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
相关推荐
-
android通过jxl读excel存入sqlite3数据库
复制代码 代码如下: package com.demo.day20140228; import java.io.File;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.SQLException;import java.sql.Statement; import jxl.Cell;import jxl.Sheet;import jx
-
Android中使用sax解析xml文件的方法
SAX是一个解析速度快并且占用内存少的xml解析器,非常适合用于Android等移动设备. SAX解析XML文件采用的是事件驱动,也就是说,它并不需要解析完整个文档,在按内容顺序解析文档的过程中,SAX会判断当前读到的字符是否合法XML 语法中的某部分,如果符合就会触发事件.所谓事件,其实就是一些回调(callback)方法,这些方法(事件)定义在ContentHandler接口.下面是一些ContentHandler接口常用的方法: startDocument():当遇到文档的开头的时候,调用
-
Android开发实现读取excel数据并保存为xml的方法
本文实例讲述了Android开发实现读取excel数据并保存为xml的方法.分享给大家供大家参考,具体如下: 前阵子,公司请外面人翻译了一些android中values中的一些strings,然而保存的都是excel格式,如果单纯的将excel中的数据粘贴到指定的xml中的话,工作量非常的大,于是,自己写了个简单的demo,将excel中的数据读取并保存为xml对应的数据,下面的demo和图片展示: 1.数据保存在BeanValue中,包括key和value,方便后续数据读取 package c
-
Android操作Excel文件的功能实现
Android中操作Excel文件导出报表时主要采用开源库jxl,最早用在java上,但也可用于Android.与之类似的POI,因为依赖库众多,所以只能用于java,而不能用于Android. 使用jxl需要在Android工程中导入jxl.jar包,jxl可以完成Excel的基本读写操作,其支持与不支持的情况如下: 1.jxl只支持Excel2003格式,不支持Excel2007格式.即支持xls文件,不支持xlsx文件. 2.jxl不支持直接修改excel文件,但可通过复制新文件覆盖原文件
-
android编程之xml文件读取和写入方法
本文实例讲述了android编程之xml文件读取和写入方法.分享给大家供大家参考.具体分析如下: 一.环境: 主机:WIN8 开发环境:Eclipse 二.说明: 1.打开sd卡中的xml文件,如果不存在,这新建一个,并写入默认配置 2.读取xml文件 三.xml文件格式: <?xml version="1.0" encoding="UTF-8" standalone="true"?> -<config> <titl
-
android操作XML的几种方法总结
XML作为一种业界公认的数据交换格式,在各个平台与语言之上,都有广泛使用和实现.其标准型,可靠性,安全性......毋庸置疑.在android平台上,我们要想实现数据存储和数据交换,经常会使用到xml数据格式和xml文件. 小提示:android中存储数据一般有如下几种:SharedPreferences(参数化),XML文件,sqllite数据库,网络,ContentProvider(内容提供者)等. 在android中,操作xml文件,一般有几种方式:SAX操作,Pull操作,DOM操作等.
-
Android应用读取Excel文件的方法
本文实例讲述了Android应用读取Excel文件的方法.分享给大家供大家参考,具体如下: ReadExcel.java文件: public class ReadExcel extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState)
-
基于Android XML解析与保存的实现
解析XML文件:在Android平台上可以使用SAX.DOM和Android附带的pull解析器解析XML文件:pull解析器提供了各种事件,使用parser.next()方法进入下一个元素并触发相应事件,pull解析器产生的事件是一个数字,可以通过switch对感兴趣的事件进行处理:通过paser.nextText()方法可以获取下一个Text类型的节点的值:http://xmlpull.org/xmlpull-website/impls.shtml; 读取XMLXmlPullParser p
-
Android 中读取Excel文件实例详解
Android 中读取Excel文件实例详解 最近有个需求需要在app内置数据,新来的产品扔给了我两个Excel表格就不管了(两个表格格式还不统一...),于是通过度娘等方法找到了Android中读取Excel表格文件的一种方法,记录一下. 闲话一下Excel中工作簿和工作表的区别: 工作簿中包含有工作表.工作簿可以由一张或多张工作表组成,一个工作簿就是一个EXCEL表格文件. 好了,开始读取表格文件吧. 前提 首先,我们假设需要读取的表格文件名字为test.xls, 位于assets根目录下.
-
Android 读取资源文件实例详解
Android 读取资源文件实例详解 本文主要介绍 Android 读取资源文件,直接从 assets 读取,从 Raw 文件中读取,InputStream 转 String. 以下为直接从assets读取: /** * 得到Assets里面相应的文件流 * * @param fileName * @return */ private InputStream getAssetsStream(String fileName) { InputStream is = null; try { is =
-
Android 中 Tweened animation的实例详解
Android 中 Tweened animation的实例详解 Tweened animation有四种类型,下面主要介绍Scale类型. 运行效果如下: Android SDK提供了2种方法:直接从XML资源中读取Animation,使用Animation子类的构造函数来初始化Animation对象,第二种方法在看了Android SDK中各个类的说明就知道如何使用了,下面简要说明从XML资源中读取Animation.XML资源中的动画文件animation.xml内容为: <?xml ve
-
Android 中FloatingActionButton(悬浮按钮)实例详解
Android 中FloatingActionButton(悬浮按钮)实例详解 一.介绍 这个类是继承自ImageView的,所以对于这个控件我们可以使用ImageView的所有属性 二.使用准备, 在as 的 build.grade文件中写上 compile 'com.android.support:design:22.2.0' 三.使用说明 <android.support.design.widget.FloatingActionButton android:id="@+id/floa
-
java 读取本地文件实例详解
java 读取本地文件实例详解 用javax.xml.w3c解析 实例代码: package cn.com.xinli.monitor.utils; import org.w3c.dom.Document; import org.w3c.dom.Element; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import java.io.File; /** *
-
Android中mvp模式使用实例详解
MVP 是从经典的模式MVC演变而来,它们的基本思想有相通的地方:Controller/Presenter负责逻辑的处理,Model提供数据,View负 责显示.作为一种新的模式,MVP与MVC有着一个重大的区别:在MVP中View并不直接使用Model,它们之间的通信是通过Presenter (MVC中的Controller)来进行的,所有的交互都发生在Presenter内部,而在MVC中View会从直接Model中读取数据而不是通过 Controller. 在MVC里,View是可以直接访问
-
Android中标签容器控件的实例详解
前言 在一些APP中我们可以看到一些存放标签的容器控件,和我们平时使用的一些布局方式有些不同,它们一般都可以自动适应屏幕的宽度进行布局,根据对自定义控件的一些理解,今天写一个简单的标签容器控件,给大家参考学习. 下面这个是我在手机上截取的一个实例,是在MIUI8系统上截取的 这个是我实现的效果图 原理介绍 根据对整个控件的效果分析,大致可以将控件分别从以下这几个角度进行分析: 1.首先涉及到自定义的ViewGroup,因为现有的控件没法满足我们的布局效果,就涉及到要重写onMeasure和onL
-
Android中Image的简单实例详解
在多媒体应用中,Image是最基础的功能模块,接下来我们将看看在Android中是如何获取和存储Image的.Android内嵌的Image获取和存储功能,可以让我们对于整个媒体框架有个比较全面的了解,同时为audio和video的学习打下基础. 一.Image的获取可以通过调Android自带的Camera应用来完成.该应用含有一个Intent-Filter.通过使用 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE):sta
-
Android中DownloadManager实现文件下载实例详解
Android中DownloadManager实现文件下载 下载 创建下载链接 DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url)); 设置允许下载的网络环境 request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI); WIFI网络 : DownloadManager.Request.NETWORK_WIFI 移动网
-
Android中的相对路径实例详解
1.同个文件夹访问 D:\Java\main\A.java D:\Java\main\B.java A访问B的相对路径为B.java 2.目标文件在其子目录 D:\Java\A.java D:\Java\main\B.java A访问B的相对路径为main\B.java 注意的是在Android代码中必须这样写main/B.java,上面之所以那样写只是为了说明它在window下的路径,Java程序中路径分隔符是'/'或者'\\',因为Java程序中'\'表示转义的意思. 3.目标文件在其上一
随机推荐
- asp.net Repeater控件的说明及详细介绍及使用方法
- 简单讲解MySQL的数据库复制方法
- Windows 2003组策略和安全模板的应用
- Zend的AutoLoad机制介绍
- PHP实现的连贯操作、链式操作实例
- 正则表达式,提取网页中的链接地址
- linux下安装php的memcached客户端
- Android RecyclerView网格布局(支持多种分割线)详解(2)
- ajax异步加载图片实例分析
- Java Web开发环境配置详解
- 为jquery的ajaxfileupload增加附加参数的方法
- js 操作select和option常用代码整理
- windows常用网络命令使用脚本分享
- javascript getElementByTagName的使用
- 实例讲解Android app开发中ListView的基本使用及优化
- Java对字符串进行加密解密
- Android 动态添加Fragment的实例代码
- Python微信公众号开发平台
- Tensorflow的可视化工具Tensorboard的初步使用详解
- JS实现访问DOM对象指定节点的方法示例