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


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

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

    下面来看看操作Excel的API。

    1.创建并且写入数据

    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)的位置,加入了一个数字。

    2.读数据

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

    		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的内容了。

    3.修改数据

    		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文件了。

    4.Java读取Excel插入SQLite

        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的效果图

    5.总结

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

    最后上传工程代码:

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

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

     


  • 相关阅读:
    算法(Algorithms)第4版 练习 1.3.4
    算法(Algorithms)第4版 练习 1.3.5
    算法(Algorithms)第4版 练习 1.3.6
    微服务迁移步骤建议
    xxxx interview问题解读与总结
    乐观锁与悲观锁——解决并发问题
    编码解码--三种常见字符编码简介:ASCII、Unicode和UTF-8
    编码解码--url编码解码
    分页缓存预加载算法
    Could not initialize class sun.awt.X11FontManager 异常问题
  • 原文地址:https://www.cnblogs.com/suncoolcat/p/3281343.html
Copyright © 2020-2023  润新知