Android应用读取Excel文件的方法
本文实例讲述了Android应用读取Excel文件的方法。分享给大家供大家参考,具体如下:
ReadExcel.java文件:
publicclassReadExcelextendsActivity{ /**Calledwhentheactivityisfirstcreated.*/ @Override publicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); //createExcel(); //readExcel(); writeExcel("mnt/sdcard/test.xls"); } publicvoidreadExcel(){ try{ /** *后续考虑问题,比如Excel里面的图片以及其他数据类型的读取 **/ InputStreamis=newFileInputStream("mnt/sdcard/test.xls"); Workbookbook=Workbook .getWorkbook(newFile("mnt/sdcard/test.xls")); book.getNumberOfSheets(); //获得第一个工作表对象 Sheetsheet=book.getSheet(0); intRows=sheet.getRows(); intCols=sheet.getColumns(); System.out.println("当前工作表的名字:"+sheet.getName()); System.out.println("总行数:"+Rows); System.out.println("总列数:"+Cols); for(inti=0;i<Cols;++i){ for(intj=0;j<Rows;++j){ //getCell(Col,Row)获得单元格的值 System.out .print((sheet.getCell(i,j)).getContents()+"\t"); } System.out.print("\n"); } //得到第一列第一行的单元格 Cellcell1=sheet.getCell(0,0); Stringresult=cell1.getContents(); System.out.println(result); book.close(); }catch(Exceptione){ System.out.println(e); } } publicvoidcreateExcel(){ try{ //创建或打开Excel文件 WritableWorkbookbook=Workbook.createWorkbook(newFile( "mnt/sdcard/test.xls")); //生成名为“第一页”的工作表,参数0表示这是第一页 WritableSheetsheet1=book.createSheet("第一页",0); WritableSheetsheet2=book.createSheet("第三页",2); //在Label对象的构造函数中,元格位置是第一列第一行(0,0)以及单元格内容为test Labellabel=newLabel(0,0,"test"); //将定义好的单元格添加到工作表中 sheet1.addCell(label); /* *生成一个保存数字的单元格.必须使用Number的完整包路径,否则有语法歧义 */ jxl.write.Numbernumber=newjxl.write.Number(1,0,555.12541); sheet2.addCell(number); //写入数据并关闭文件 book.write(); book.close(); }catch(Exceptione){ System.out.println(e); } } /** *jxl暂时不提供修改已经存在的数据表,这里通过一个小办法来达到这个目的,不适合大型数据更新!这里是通过覆盖原文件来更新的. * *@paramfilePath */ publicvoidupdateExcel(StringfilePath){ try{ Workbookrwb=Workbook.getWorkbook(newFile(filePath)); WritableWorkbookwwb=Workbook.createWorkbook(newFile( "d:/new.xls"),rwb);//copy WritableSheetws=wwb.getSheet(0); WritableCellwc=ws.getWritableCell(0,0); //判断单元格的类型,做出相应的转换 Labellabel=(Label)wc; label.setString("Thevaluehasbeenmodified"); wwb.write(); wwb.close(); rwb.close(); }catch(Exceptione){ e.printStackTrace(); } } publicstaticvoidwriteExcel(StringfilePath){ try{ //创建工作薄 WritableWorkbookwwb=Workbook.createWorkbook(newFile(filePath)); //创建工作表 WritableSheetws=wwb.createSheet("Sheet1",0); //添加标签文本 //Randomrnd=newRandom((newDate()).getTime()); //intforNumber=rnd.nextInt(100); //Labellabel=newLabel(0,0,"test"); //for(inti=0;i<3;i++){ //ws.addCell(label); //ws.addCell(newjxl.write.Number(rnd.nextInt(50),rnd //.nextInt(50),rnd.nextInt(1000))); //} //添加图片(注意此处jxl暂时只支持png格式的图片) //0,1分别代表x,y2,5代表宽和高占的单元格数 ws.addImage(newWritableImage(5,5,2,5,newFile( "mnt/sdcard/nb.png"))); wwb.write(); wwb.close(); }catch(Exceptione){ System.out.println(e.toString()); } } }
jxl.7z点击此处本站下载。
希望本文所述对大家Android程序设计有所帮助。