Excel表格读取

/**
 * 文件读取是耗时操作,所以要放在线程中进行
 * 因为子线程无法刷新主线程,所以要创建一个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卡读取资源

时间: 2024-10-12 04:29:40

Excel表格读取的相关文章

php语言中Excel表格导入数据库的方法详解

在php编程语言中,对于如何在Excel表格中导入数据库的方法是很多编程者比较头疼的一个问题,有些技术人员可能在百度尝试过搜索很多不同的问题,但是给出的答案经过自己测试之后,发现还是行不通,那么对此,燚轩科技也尝试了一下如何在Excel表格中导入数据库,现在将源代码展示给各位技术编程者,大家可以借鉴参考一下. public function saveexcel(){require_once('./Thinkphp/Extend/Vendor/PHPExcel-1.8/Classes/PHPExc

利用java反射机制实现读取excel表格中的数据

如果直接把excel表格中的数据导入数据库,首先应该将excel中的数据读取出来. 为了实现代码重用,所以使用了Object,而最终的结果是要获取一个list如List<User>.List<Book>等,所以需要使用泛型机制去实现.下面会给出代码,可能会稍微复杂一点,但注释很清晰,希望大家耐心阅读. 在上代码之前简单说一下思路: 1.excel表格必须有表头,且表头中各列的值要与实体类的属性相同: 2.先读取表头信息,然后获取表头列数,接着确定需要使用的set方法的名称,并存到数

C#读取Excel表格数据到DataGridView中和导出DataGridView中的数据到Excel

其实想在datagridview中显示excel表格中的数据跟读取数据库中的数据没什么差别,只不过是创建数据库连接的时候连接字段稍有差别. private void btnShow_Click(object sender, EventArgs e) { OpenFileDialog fd = new OpenFileDialog();//首先根据打开文件对话框,选择excel表格 ofd.Filter = "表格|*.xls";//打开文件对话框筛选器 string strPath;/

python读取excel表格生成sql语句 第一版

由于单位设计数据库表·,都用sql.不知道什么原因不用 powerdesign或者ermaster工具,建表很痛苦  作为程序猿当然要想办法解决,用Python写一个程序解决 需要用到 xlrd linux下 sudo pip install xlrd 主要是适用于db2数据库 excel 表结构 其中 number是不正确的字段类型 不知道同事为啥这么设置.这里程序里有纠错,这个程序就是将sql语句拼好. __author__ = 'c3t' # coding:utf-8 import xlr

php 读取excel表格中的内容

<?php /** * excel表格内容在网页中显示 * * 首先需要下载PHPExcel 工具包 * 网址: http://phpexcel.codeplex.com/releases/view/119187 * * @copyright 2007-2012 Xiaoqiang. * @author Xiaoqiang.Wu <[email protected]> * @version 1.01 */ header("Content-type: text/html; cha

读取Excel表格报错问题总结(用apache POI读取,表格稍微改动就报错导入不进去)

 首先是建立在用apachePOI解析Excel时一定几率是能成功解析导入的,如果一点也不能的话,也可以参考看看我总结的原因,也许也是导致你屡次导入不能的原因之一. 这个问题是前天客户反应的,不用下载的好的模版套进内容再导入的话就报错,怎么也导入不进去,客户即想用从其他直接导出的数据导入我们的产品中用想能自己复制一些其他的内容到自己建立的excel表格中导入进去.今天晚上特意抽出时间来总结一产生这个问题的几个原因. 第一个原因就是,我最后发现我们的产品中excel导入这个组件(用apache

Java读取excel表格

Java读取excel表格 一般都是用poi技术去读取excel表格的,但是这个技术又是什么呢 什么是Apache POI? Apache POI是一种流行的API,它允许程序员使用Java程序创建,修改和显示MS Office文件.这由Apache软件基金会开发使用Java分布式设计或修改Microsoft Office文件的开源库.它包含类和方法对用户输入数据或文件到MS Office文档进行解码. Apache POI Apache POI是Apache软件基金会提供的100%开源库.大多

ADO.NET(OleDb)读取Excel表格时的一个BUG

如果我们有例如以下一个Excel表格: 如今要使用C#程序读取其内容: using System; using System.Data.OleDb; namespace Skyiv.Ben.Test {   sealed class ExcelTest   {     static void Main()     {       try       {         using (OleDbConnection conn = new OleDbConnection("Provider=Micr

python工具 - 从文件名读取特定信息到excel表格

情景:文件名中包含学号和用户名,其中用户名在前学好在后,学号为2位,如harry33.txt.natasha12.txt. 要求:将多个文件名中的用户名与学号分开并保存到excle中. 代码部分: import os # 创建一个立标,用来保存去掉扩展名后的文件名 filename = [] # os.walk:遍历某目录下所有的文件和文件夹 for a,b,files in os.walk('test'): # 如果文件存在,保存开始到倒数第四位的字符到filename列表里 if files