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程序设计有所帮助。