Android应用读取Excel文件的方法

 更新时间:2015年12月12日 12:27:29   作者:kitea  
这篇文章主要介绍了Android应用读取Excel文件的方法,涉及Android针对Excel文件的读写保存等相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了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程序设计有所帮助。

相关文章

  • 解析Android开发优化之:对Bitmap的内存优化详解

    解析Android开发优化之:对Bitmap的内存优化详解

    在Android应用里,最耗费内存的就是图片资源。而且在Android系统中,读取位图Bitmap时,分给虚拟机中的图片的堆栈大小只有8M,如果超出了,就会出现OutOfMemory异常。所以,对于图片的内存优化,是Android应用开发中比较重要的内容
    2013-05-05
  • Android实现自定义验证码输入框效果(实例代码)

    Android实现自定义验证码输入框效果(实例代码)

    这篇文章主要介绍了Android实现自定义验证码输入框效果,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-01-01
  • 解析Android开发中多点触摸的实现方法

    解析Android开发中多点触摸的实现方法

    多点触摸(MultiTouch),指的是允许计算机用户同时通过多个手指来控制图形界面的一种技术。与多点触摸技术相对应的就是单点触摸,单点触摸的设备已经有很多年了,小尺寸的有触摸式的手机,大尺寸的最常见的就是银行里的ATM机和排队查询机等等
    2013-05-05
  • Android自定义View基础开发之图片加载进度条

    Android自定义View基础开发之图片加载进度条

    这篇文章主要介绍了Android自定义View基础开发之图片加载进度条,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-08-08
  • 如何在android中制作一个方向轮盘详解

    如何在android中制作一个方向轮盘详解

    这篇文章主要给大家介绍了关于如何在android中制作一个方向轮盘的相关资料,这个是在手游领域中很常见的用于控制方向的轮盘,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2021-09-09
  • Android自定义ScrollView实现放大回弹效果

    Android自定义ScrollView实现放大回弹效果

    这篇文章主要为大家详细介绍了Android自定义ScrollView实现放大回弹效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • Android 消息机制问题总结

    Android 消息机制问题总结

    本文主要介绍Android 消息机制,这里整理了消息机制的详细资料,和经常出现的问题,希望能帮助大家对消息机制的理解
    2016-08-08
  • Android TabLayout设置指示器宽度的方法

    Android TabLayout设置指示器宽度的方法

    本篇文章主要介绍了Android TabLayout设置指示器宽度的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • Mac 下 Android Studio 不打印日志的解决办法

    Mac 下 Android Studio 不打印日志的解决办法

    这篇文章主要介绍了Mac 下 Android Studio 不打印日志的解决办法的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下
    2017-10-10
  • Android设置铃声实现代码

    Android设置铃声实现代码

    这篇文章主要介绍了Android设置铃声实现代码,以实例形式分析了Android中铃声设置的相关技巧,非常简单实用,需要的朋友可以参考下
    2015-10-10

最新评论