Java操作Excel文件以及在Android中的应用

来源:互联网 发布:网络审查制度的利弊 编辑:程序博客网 时间:2024/06/16 19:26

本文章由临江仙原创,转载请注明出处:http://blog.csdn.net/zhy_cheng/article/details/10286563

 

Excel作为一种有格式的文件,可以使用Java来对Excel来操作,借助jxl库,可以很方便的对Excel进行读取,写入,修改。关于jxl库,在项目最后上传的工程中可以下载。

下面来看看操作Excel的API。

1.创建并且写入数据

[cpp] view plaincopy
  1. WritableWorkbook wwb=Workbook.createWorkbook(f);  


创建一个Excel文档。可以通过一个File对象或者OutputStream来创建。

[java] view plaincopy
  1. WritableSheet ws=wwb.createSheet("zhycheng"0);  


通过Excel文档获得工作簿。

[java] view plaincopy
  1. Label label=new Label(0,0,"liu");  
  2.   
  3. ws.addCell(label);  
  4.   
  5. jxl.write.Number n=new jxl.write.Number(0,1,34.56);  
  6. ws.addCell(n);  
  7.    
  8. wwb.write();  
  9. wwb.close();  


Label是文字,Number是数字,这样就在(0,0)的位置加入了一个Label,在(0,1)的位置,加入了一个数字。

 

2.读数据

读数据的话,获取文档,获取工作簿,获取单元格,从单元格获取内容。

[java] view plaincopy
  1. Workbook wb=Workbook.getWorkbook(new File("create.xls"));//获取文档  
  2. Sheet sheet=wb.getSheet(0);             //获取工作簿  
  3. Cell c=sheet.getCell(00);             //获取单元格  
  4. System.out.println(c.getContents());            //获取内容  
  5. wb.close();  

 

这样就可以获得Excel的内容了。

 

3.修改数据

[cpp] view plaincopy
  1. Workbook wwb=Workbook.getWorkbook(new File("create.xls"));//原文件文件  
  2. WritableWorkbook wbook=Workbook.createWorkbook(new File("create.xls"), wwb);//修改的副本  
  3. WritableSheet ws=wbook.createSheet("liu", 1);  
  4. ws.addCell(new Label(3,3,"Hello"));  
  5. wbook.write();//写入  
  6. wbook.close();  

这样,就可以修改原Excel文件了。

4.Java读取Excel插入SQLite

[cpp] view plaincopy
  1.   public void onCreate(Bundle savedInstanceState)   
  2.   {  
  3.       super.onCreate(savedInstanceState);  
  4.       setContentView(R.layout.main);  
  5.       lv=(ListView) findViewById(R.id.listView1);  
  6.       al=new ArrayList<HashMap<String,String>>();  
  7.       AssetManager am=this.getAssets();  
  8.       InputStream is=null;  
  9.       try {  
  10.     is=am.open("data.xls");  
  11.     Workbook wb=Workbook.getWorkbook(is);  
  12.     Sheet sheet=wb.getSheet(0);  
  13.     int row=sheet.getRows();  
  14.     HashMap<String,String> hm;  
  15.     for(int i=0;i<row;++i)  
  16.     {  
  17.         Cell cellarea=sheet.getCell(0, i);  
  18.         Cell cellschool=sheet.getCell(1, i);  
  19.         System.out.println(cellarea.getContents()+":"+cellschool.getContents());  
  20.         hm=new HashMap<String,String>();  
  21.         hm.put("AREA", cellarea.getContents());  
  22.         hm.put("SCHOOL", cellschool.getContents());  
  23.         al.add(hm);  
  24.     }  
  25.     SimpleAdapter sa=new SimpleAdapter(this,al,R.layout.lv_item,  
  26.             new String[]{"AREA","SCHOOL"},new int[]{R.id.tv_area,R.id.tv_school});  
  27.     lv.setAdapter(sa);  
  28.   
  29. catch (Exception e) {  
  30.     // TODO Auto-generated catch block  
  31.     e.printStackTrace();  
  32. }  
  33.        
  34.         
  35.         
  36.   }  


上面的代码演示的是从asset中的data.xls获取数据,提供给Android使用,下面是读取data.xls的效果图

 

5.总结

Excel来保存数据,对于数据比较小的话,还是很推荐使用的,应为有优秀的图形化操作工具WPS,操作起来很方便,但是,数据量一旦大了的话,效率就不如SQLite了。当然,在使用的灵活性方面也不如SQLite,SQLite有SQL语句,可以很灵活的查询。

 

最后上传工程代码:

Java操作Excel的代码:点击下载

Android使用Excel的代码:点击下载

0 0
原创粉丝点击