欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android应用读取Excel文件的方法

程序员文章站 2023-12-13 19:55:40
本文实例讲述了android应用读取excel文件的方法。分享给大家供大家参考,具体如下: readexcel.java文件: public class rea...

本文实例讲述了android应用读取excel文件的方法。分享给大家供大家参考,具体如下:

readexcel.java文件:

public class readexcel extends activity { 
 /** called when the activity is first created. */ 
 @override 
 public void oncreate(bundle savedinstancestate) { 
  super.oncreate(savedinstancestate); 
  setcontentview(r.layout.main); 
  // createexcel(); 
  // readexcel(); 
  writeexcel("mnt/sdcard/test.xls"); 
 } 
 public void readexcel() { 
  try { 
   /** 
    * 后续考虑问题,比如excel里面的图片以及其他数据类型的读取 
    **/ 
   inputstream is = new fileinputstream("mnt/sdcard/test.xls"); 
   workbook book = workbook 
     .getworkbook(new file("mnt/sdcard/test.xls")); 
   book.getnumberofsheets(); 
   // 获得第一个工作表对象 
   sheet sheet = book.getsheet(0); 
   int rows = sheet.getrows(); 
   int cols = sheet.getcolumns(); 
   system.out.println("当前工作表的名字:" + sheet.getname()); 
   system.out.println("总行数:" + rows); 
   system.out.println("总列数:" + cols); 
   for (int i = 0; i < cols; ++i) { 
    for (int j = 0; j < rows; ++j) { 
     // getcell(col,row)获得单元格的值 
     system.out 
       .print((sheet.getcell(i, j)).getcontents() + "\t"); 
    } 
    system.out.print("\n"); 
   } 
   // 得到第一列第一行的单元格 
   cell cell1 = sheet.getcell(0, 0); 
   string result = cell1.getcontents(); 
   system.out.println(result); 
   book.close(); 
  } catch (exception e) { 
   system.out.println(e); 
  } 
 } 
 public void createexcel() { 
  try { 
   // 创建或打开excel文件 
   writableworkbook book = workbook.createworkbook(new file( 
     "mnt/sdcard/test.xls")); 
   // 生成名为“第一页”的工作表,参数0表示这是第一页 
   writablesheet sheet1 = book.createsheet("第一页", 0); 
   writablesheet sheet2 = book.createsheet("第三页", 2); 
   // 在label对象的构造函数中,元格位置是第一列第一行(0,0)以及单元格内容为test 
   label label = new label(0, 0, "test"); 
   // 将定义好的单元格添加到工作表中 
   sheet1.addcell(label); 
   /* 
    * 生成一个保存数字的单元格.必须使用number的完整包路径,否则有语法歧义 
    */ 
   jxl.write.number number = new jxl.write.number(1, 0, 555.12541); 
   sheet2.addcell(number); 
   // 写入数据并关闭文件 
   book.write(); 
   book.close(); 
  } catch (exception e) { 
   system.out.println(e); 
  } 
 } 
 /** 
  * jxl暂时不提供修改已经存在的数据表,这里通过一个小办法来达到这个目的,不适合大型数据更新! 这里是通过覆盖原文件来更新的. 
  * 
  * @param filepath 
  */ 
 public void updateexcel(string filepath) { 
  try { 
   workbook rwb = workbook.getworkbook(new file(filepath)); 
   writableworkbook wwb = workbook.createworkbook(new file( 
     "d:/new.xls"), rwb);// copy 
   writablesheet ws = wwb.getsheet(0); 
   writablecell wc = ws.getwritablecell(0, 0); 
   // 判断单元格的类型,做出相应的转换 
   label label = (label) wc; 
   label.setstring("the value has been modified"); 
   wwb.write(); 
   wwb.close(); 
   rwb.close(); 
  } catch (exception e) { 
   e.printstacktrace(); 
  } 
 } 
 public static void writeexcel(string filepath) { 
  try { 
   // 创建工作薄 
   writableworkbook wwb = workbook.createworkbook(new file(filepath)); 
   // 创建工作表 
   writablesheet ws = wwb.createsheet("sheet1", 0); 
   // 添加标签文本 
   // random rnd = new random((new date()).gettime()); 
   // int fornumber = rnd.nextint(100); 
   // label label = new label(0, 0, "test"); 
   // for (int i = 0; i < 3; i++) { 
   // ws.addcell(label); 
   // ws.addcell(new jxl.write.number(rnd.nextint(50), rnd 
   // .nextint(50), rnd.nextint(1000))); 
   // } 
   // 添加图片(注意此处jxl暂时只支持png格式的图片) 
   // 0,1分别代表x,y 2,5代表宽和高占的单元格数 
   ws.addimage(new writableimage(5, 5, 2, 5, new file( 
     "mnt/sdcard/nb.png"))); 
   wwb.write(); 
   wwb.close(); 
  } catch (exception e) { 
   system.out.println(e.tostring()); 
  }
 }
}

jxl.7z点击此处。

希望本文所述对大家android程序设计有所帮助。

上一篇:

下一篇: