android中excel导入导出 安卓手机excel怎么用手机excel「android中excel导入导出 安卓手机excel怎么用」
最近一直在考虑要做的那个Android的项目中的数据用什么存储,导师给的意见是直接用excel,因为简单;傻博给的意见是用数据库,因为以后如果要改动的话,excel改起来,累死人。综合考虑了下,决定两个都做,不过数据库的还没完全弄好,所以先写一个操作excel的方案吧,其实就是一些我写的函数,用来实现对excel的基本操作,因为这里面重点是操作,所以,界面显示上,我就没有追求什么了。
首先说下要实现的功能吧。
1.在sdcard的目录上创建一个excel表格,这个路径和表格名字都可以自己设定。
2.写两个自定义函数,一个写,一个读。
3.写函数,要先判断指定位置是否文件已存在;存在就做修改操作,不存在就创建新的表格,然后写操作。
4.读函数,判断指定位置是否文件存在;不存在,提醒文件不存在,存在就读取指定位置的内容。
要想能在android上直接操作excel,官方是没有给出可用的库的,但是我们可以先下载一个jxl.jar这个包,然后把它放到你的工程的libs文件夹下,然后再在工程的properties里面设置添加这个额外的库,这样就可以使用这个库里面的类了。
有了这个库之后,我们就可以来创建一个excel了,我们在sdcard的根目录下创建一个叫chz.xls的表格,你也可以设置别的路径。
因为创建很简单,所以我是把他直接写入到我的写函数里面。不过这样的话,写函数就要注意了,第一步一定是判断指定位置是否该文件已经存在,如果存在就执行修改操作,也就是执行getWorkbook();如果不存在就执行创建操作,也就是执行createWorkbook()。所以从这里也可以看出来,待会儿的读取也是执行第一个函数。
这就引出一个问题,怎么判断该位置是否文件已存在。其实这个很好解决,直接用一个简单的判断就可以了。
文件不存在的话,就会显示出我要打印的内容;如果存在就不会执行这个try。
既然这个问题也解决了,就只剩下怎么写的问题了。因为这是一个自定义的函数每个写的人可能都有不同的想法,所以定义也不一样,所以,我介绍我的思路。写入表格无非两类数据,一个字符串,一个数字型(我定义为double)。所以我想法是重构这个函数,最后一位参数是要写入的内容,这个重构就是,传字符串的函数的参数是String,传数字的话,参数的类型就是double。那我们再想一下,我们还要那些参数呢?首先我们要写到哪里,也就是文件是什么,这肯定要,我定义为String fileName。其次,我们要写到这个表格的哪里,也就是单元格的具体行列值,所以还要两个参数 int column和int row。
参数我们确定了,接下来就要看怎么写到这个单元格了。这里首先要确定一个关系,就是文件名也可以说是我们的工作簿workbook,在这个工作簿上我们可以创建很多个表sheet,我前面都是把这两个混在一起说的,但是这里要区分,因为你不能直接向workbook里写入数据,除非是给sheet取名字,你写的时候要定义好那个sheet要写入。(你这时就要说,刚才的参数要多一个sheet,其实的确需要,但是我这里默认只有一张表,为了少一个参数,参数太多,给人感觉很累赘)。
这是写入数字,从Number这个方法的英语单词含义就可以看出来,那我要写入的是字符串用什么呢?
用Label这个方法就是操作的是字符串。其实,我这里额外提一句,因为这样写的代码很长,很多部分都是重复的,有木有简单的方法呢?有的,其实不就是把数字当成字符串处理么,String.ValueOf(double)这个函数貌似就可以,不过我没有测试,因为这样还要在里面加判断,也很复杂的样子。
完整的写函数其实就是这样,我这里只展示写入字符串的吧,写入数字也是一样的,略加修改就可以。
接着说读函数了,第一步肯定是判断文件存在与否,不多说了。然后是读取已存在的表,用第一个函数,也不说了。要得到具体单元格内容,可以直接用getrow(column)[row],但是这个返回值是一个Cell型的,要转化为String型的,所以就是下面这样的操作。
具体的读函数代码:
哦,貌似忘记分析参数了,不过你看了我的设计写函数思路,读函数,你一看就懂了,不过区别就是这个readExcel函数是有返回值的,返回的就是读到的单元格内容,这点很重要,别的我就不说了。
哦,主函数忘记说了,就是调运这两个函数,然后把读到的要显示出来就可以了。
测试是在cmd中进行的,过程不复杂,就是一些简单的命令,比方说进入虚拟机,先要到指定路径下,然后adb shell就可以进入虚拟机了。然后跳转到sdcard这个目录下,就cd /sdcard就可以了,看这个目录下文件ls。要看这个chz.xls表格怎么办呢?把他移到电脑的d盘根目录下,这样再用电脑打开看就可以了。用adb pull /sdcard/chz.xls d:/这个命令就可以了。下面展示几张图,不多说。
怒江版权声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕,E-mail:xinmeigg88@163.com