Android 中读取Excel文件实例详解
程序员文章站
2022-08-02 14:40:22
android 中读取excel文件实例详解
最近有个需求需要在app内置数据,新来的产品扔给了我两个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 ADT 离线下载操作步骤
下一篇: 价值百万的三声母域名WBS.com被盗