本文章由临江仙原创,转载请注明出处:http://blog.csdn.net/zhy_cheng/article/details/10286563
Excel作为一种有格式的文件,可以使用Java来对Excel来操作,借助jxl库,可以很方便的对Excel进行读取,写入,修改。关于jxl库,在项目最后上传的工程中可以下载。
下面来看看操作Excel的API。
WritableWorkbook wwb=Workbook.createWorkbook(f);
创建一个Excel文档。可以通过一个File对象或者OutputStream来创建。
WritableSheet ws=wwb.createSheet("zhycheng", 0);
通过Excel文档获得工作簿。
Label label=new Label(0,0,"liu"); ws.addCell(label); jxl.write.Number n=new jxl.write.Number(0,1,34.56); ws.addCell(n); wwb.write(); wwb.close();
Label是文字,Number是数字,这样就在(0,0)的位置加入了一个Label,在(0,1)的位置,加入了一个数字。
读数据的话,获取文档,获取工作簿,获取单元格,从单元格获取内容。
Workbook wb=Workbook.getWorkbook(new File("create.xls"));//获取文档 Sheet sheet=wb.getSheet(0); //获取工作簿 Cell c=sheet.getCell(0, 0); //获取单元格 System.out.println(c.getContents()); //获取内容 wb.close();
这样就可以获得Excel的内容了。
Workbook wwb=Workbook.getWorkbook(new File("create.xls"));//原文件文件 WritableWorkbook wbook=Workbook.createWorkbook(new File("create.xls"), wwb);//修改的副本 WritableSheet ws=wbook.createSheet("liu", 1); ws.addCell(new Label(3,3,"Hello")); wbook.write();//写入 wbook.close();
这样,就可以修改原Excel文件了。
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); lv=(ListView) findViewById(R.id.listView1); al=new ArrayList<HashMap<String,String>>(); AssetManager am=this.getAssets(); InputStream is=null; try { is=am.open("data.xls"); Workbook wb=Workbook.getWorkbook(is); Sheet sheet=wb.getSheet(0); int row=sheet.getRows(); HashMap<String,String> hm; for(int i=0;i<row;++i) { Cell cellarea=sheet.getCell(0, i); Cell cellschool=sheet.getCell(1, i); System.out.println(cellarea.getContents()+":"+cellschool.getContents()); hm=new HashMap<String,String>(); hm.put("AREA", cellarea.getContents()); hm.put("SCHOOL", cellschool.getContents()); al.add(hm); } SimpleAdapter sa=new SimpleAdapter(this,al,R.layout.lv_item, new String[]{"AREA","SCHOOL"},new int[]{R.id.tv_area,R.id.tv_school}); lv.setAdapter(sa); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }
上面的代码演示的是从asset中的data.xls获取数据,提供给Android使用,下面是读取data.xls的效果图
Excel来保存数据,对于数据比较小的话,还是很推荐使用的,应为有优秀的图形化操作工具WPS,操作起来很方便,但是,数据量一旦大了的话,效率就不如SQLite了。当然,在使用的灵活性方面也不如SQLite,SQLite有SQL语句,可以很灵活的查询。
最后上传工程代码:
Java操作Excel的代码:点击下载
Android使用Excel的代码:点击下载