Excel表格读取
2015-10-09 09:14
239 查看
/** * 文件读取是耗时操作,所以要放在线程中进行 * 因为子线程无法刷新主线程,所以要创建一个handler * 用来刷新界面 * * 资源读取两种方式: * 1--本地SD卡读取 * 2--assets中读取 * * 这里只读取第一列与第二列的数据 * 读取SD卡的excel资源可随意找一个,修改一下名字即可 */ private void readExcel(){ new Thread(new Runnable() { @Override public void run() { al = new ArrayList<HashMap<String,String>>(); InputStream is=null; try { //从SD卡读取 File file = new File(Environment.getExternalStorageDirectory(), "扫描类型.xls");//根目录下 is = new FileInputStream(file); //从assets中读取 //AssetManager am=mContext.getAssets(); //is = am.open("data.xls"); Workbook wb = Workbook.getWorkbook(is); Sheet sheet = wb.getSheet(0); int row = sheet.getRows(); HashMap<String,String> hm; for(int i=0; i<row; ++i) { Cell cellarea = sheet.getCell(0, i); Cell cellschool = sheet.getCell(1, i); System.out.println(cellarea.getContents()+":"+cellschool.getContents()); hm = new HashMap<String,String>(); hm.put("AREA", cellarea.getContents()); hm.put("SCHOOL", cellschool.getContents()); al.add(hm); } mHandler.sendEmptyMessage(0x0001); } catch (Exception e) { e.printStackTrace(); } } }).start(); } public Handler mHandler = new Handler(){ public void handleMessage(Message msg){ SimpleAdapter sa = new SimpleAdapter(mContext,al,R.layout.lv_item,new String[]{"AREA","SCHOOL"},new int[]{R.id.tv_area,R.id.tv_school}); lv.setAdapter(sa); } };
//lv_item.xml适配器文件 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" > <TextView android:id="@+id/tv_area" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="省份" /> <TextView android:id="@+id/tv_school" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="right" android:text="大学" /> </LinearLayout>
//main.xml布局文件,只有一个ListView <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <ListView android:id="@+id/listView1" android:layout_width="match_parent" android:layout_height="wrap_content" > </ListView> </LinearLayout>
//项目截图
PS:这个excel其实来自网上某位博友,我这里对齐做了下优化
1、把读取的耗时操作放在了线程里进行
2、增加了从SD卡读取资源
相关文章推荐
- 使用Python生成Excel格式的图片
- Excel 曝出 Power Query 安全漏洞,1.2 亿用户易受远程 DDE 攻击
- VBA将excel数据表生成JSON文件
- excel vba 限制工作表的滚动区域代码
- excel vba 高亮显示当前行代码
- 表格标签table深入了解
- table 隔列(行)换色效果让表格结构更清淅
- table高级应用把表格进行到底(必看)
- SQL 导入导出Excel数据的语句
- VB返回记录集结果到HTML表格的方法
- 文本、Excel、Access数据导入SQL Server2000的方法
- C#导出数据到Excel文件的方法
- Vbscript生成Excel报表的常用操作总结
- 表格高级使用技巧_把表格进行到底(必看)
- C#实现导入CSV文件到Excel工作簿的方法
- C#基于NPOI生成具有精确列宽行高的Excel文件的方法
- 总提示[Microsoft][ODBC Excel Driver] 数值字段溢出官方解决方法
- C#将Sql数据保存到Excel文件中的方法
- VC6.0实现读取Excel数据的方法
- 把excel表格里的数据导入sql数据库的两种方法