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

android读取assets中Excel表格并显示

程序员文章站 2024-02-12 12:36:52
本文实例为大家分享了android读取assets中excel的具体代码,供大家参考,具体内容如下 1.在assets下放的excel表格,命名为excel.xls...

本文实例为大家分享了android读取assets中excel的具体代码,供大家参考,具体内容如下

1.在assets下放的excel表格,命名为excel.xls
2.添加读取excel需要的jar包”jxl.jar”,assets是建在main级别目录下,建错地方找不到文件 

android读取assets中Excel表格并显示 

3.读取excel中的文件

/*获取excel表格中的数据不能在主线程中调用
   xlsname 为表格的名称
   index 表示第几张表格
   */
  public arraylist<excelbean> getexceldata(string xlsname, int index) {
    arraylist<excelbean> list = new arraylist<>();
    //获取文件管理器
    assetmanager manager = context.getassets();
    try {
      workbook workbook = workbook.getworkbook(manager.open(xlsname));
      sheet sheet = workbook.getsheet(index);
      //表格一共有多少行
      int sheetrows = sheet.getrows();
      //将数据添加到集合中
      for (int i = 0; i < sheetrows; i++) {
        excelbean bean = new excelbean();
        //获取列的数据
        bean.setchinese(sheet.getcell(0, i).getcontents());
        bean.setenglish(sheet.getcell(1, i).getcontents());
        bean.setspell(sheet.getcell(2, i).getcontents());
        list.add(bean);
      }
      workbook.close();
    } catch (exception e) {
      e.printstacktrace();
    }
    return list;
  }

4.更新ui

public class exceldataasynctask extends asynctask<string, void, arraylist<excelbean>> {
  private context context;
  private int index;
  private exceldata exceldata;

  public exceldataasynctask(context context, int index, exceldata exceldata) {
    this.context = context;
    this.index = index;
    this.exceldata = exceldata;
  }

  @override
  protected arraylist<excelbean> doinbackground(string... params) {
    return getexceldata(params[0], index);
  }

  @override
  protected void onpostexecute(arraylist<excelbean> excelbeen) {
    super.onpostexecute(excelbeen);
    if (excelbeen != null && excelbeen.size() > 0) {
//      exceladapter adapter=new exceladapter(excelbeen,context);
//      lv.setadapter(adapter);
      exceldata.getdata(excelbeen);
    }
  }

/利用接口回调,更新ui
  public interface exceldata {
    void getdata(arraylist<excelbean> list);
  }

java代码:

 new exceldataasynctask(excelsecondactivity.this, mp3id, new exceldataasynctask.exceldata() {
      @override
      public void getdata(final arraylist<excelbean> list) {
        exceladapter adapter = new exceladapter(list, excelsecondactivity.this);
        lv.setadapter(adapter);
        lv.setonitemclicklistener(new adapterview.onitemclicklistener() {
          @override
          public void onitemclick(adapterview<?> parent, view view, int position, long id) {

             }
        });
      }
    }).execute("excel.xls");

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。