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卡之类的话,步骤基本一致,都是首先得到我们的表格文件,然后得到工作簿对象,对其进行操作。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

更多相关文章

  1. 一款常用的 Squid 日志分析工具
  2. GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
  3. RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
  4. Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
  5. Android(安卓)NDK C++开发注意事项总结
  6. Android心得4.1--文件的保存与读取及文件的操作模式详解.doc
  7. 基于 Distcc 的android分布式编译环境的搭建
  8. AndroidUnity项目嵌入有米广告注意
  9. Android中的动画效果学习之二---Tween动画(使用XML文件进行配置

随机推荐

  1. Android 常用mimetype类型
  2. Android PopupWindow & some problems
  3. 【工具类】Android获取平板物理唯一标识
  4. Android 应用开发性能优化完全分析(下)
  5. Android背景平铺
  6. Android中获取系统的时间
  7. 菜鸟学Android(安卓)之 selector背景选择
  8. Android实现横屏与竖屏之间的转换
  9. android web服务器
  10. Android沉浸式(侵入式)标题栏(状态栏)Sta