• 苦丁茶 发表于 2014-02-10 12:58:00 | 分类标签: ASP.NET 读取Excel
  • 本文介绍下,用C#读取excel数据的例子,包括读取整个工作薄的数据、读取工作薄选定区域中的数据、读取excel特定区域中的数据。

    例1,读取Excel工作薄中的全部数据。
    读取Excel工作薄1(工作薄名称:Sheet1)中的全部数据,在OleDbDataAdapter对象中的SQL语句应为:"Select 字段列表 From [工作表名$]"。

    代码示例:
    public void ReadExcel(string sExcelFile)   
    {   
    string sConnectionString = "Provider=Microsoft.Jet.Oledb.4.0;
        Data Source=" + sExcelFile + ";Extended Properties=Excel 8.0";   
        OleDbConnection connection = new OleDbConnection(sConnectionString);   
        OleDbDataAdapter adp = new OleDbDataAdapter(
        "Select * from [Sheet1$]",connection);   
        DataSet ds = new DataSet();   
        adp.Fill(ds,"Book1");   
        grd_Excel.DataSource = ds.Tables["Book1"].DefaultView;   
        grd_Excel.DataBind();   
    }

    例2,读取Excel工作薄选定区域中的数据。
    首先,在工作簿中,左键拖拽选取要定义成为表的区域,从菜单中选择‘插入’->‘名称’->‘定义’,在‘定义名称’对话框出现中键入表的名字:“TestTable”,OK。
    那么SQL语句应为:SELECT * FROM TestTable。

    代码示例:
    public void ReadExcel(string sExcelFile)   
    {   
    string sConnectionString = "Provider=Microsoft.Jet.Oledb.4.0;
        Data Source=" + sExcelFile + ";Extended Properties=Excel 8.0";   
    OleDbConnection connection = new OleDbConnection(sConnectionString);   
    OleDbDataAdapter adp = new OleDbDataAdapter(
        "SELECT * FROM TestTable", connection);   
    DataSet ds = new DataSet();   
        adp.Fill(ds,"Book1");   
        grd_Excel.DataSource = ds.Tables["Book1"].DefaultView;   
        grd_Excel.DataBind();   
    }

    例3,读出excel特定区域的数据。

    代码示例:
    protected void Button1_Click(object sender, EventArgs e)
    {
    string filepath=FileUpload1.PostedFile.FileName;
            ReadExcel(filepath, gdBom);
    }
    public void ReadExcel(string sExcelFile,GridView dgBom)
    {
            DataTable ExcelTable;
            DataSet ds = new DataSet();
      //Excel的连接
            OleDbConnection objConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + sExcelFile + ";" + "Extended Properties=Excel 8.0;");
            objConn.Open();
            DataTable schemaTable = objConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
    string tableName = schemaTable.Rows[0][2].ToString().Trim(); //获取 Excel 的表名,默认值是sheet1
            string strSql = "select * from [" + tableName + "]";
            OleDbCommand objCmd = new OleDbCommand(strSql, objConn);
            OleDbDataAdapter myData = new OleDbDataAdapter(strSql, objConn);
            myData.Fill(ds, tableName); //填充数据
            dgBom.DataSource =ds;
            dgBom.DataBind();
            objConn.Close();

    ExcelTable = ds.Tables[tableName];
            int iColums = ExcelTable.Columns.Count;//列数
            int iRows = ExcelTable.Rows.Count;//行数
      //定义二维数组存储 Excel 表中读取的数据
            string[,] storedata = new string[iRows, iColums];

    for(int i=0;i<ExcelTable.Rows.Count;i++)
    for (int j = 0; j < ExcelTable.Columns.Count; j++)
                {
        //将Excel表中的数据存储到数组
                    storedata[i, j] = ExcelTable.Rows[i][j].ToString();
                }
    int excelBom = 0; //记录表中有用信息的行数,有用信息是指除去表的标题和表的栏目,本例中表的用用信息是从第三行开始
            //确定有用的行数
            for (int k = 2; k < ExcelTable.Rows.Count; k++)
    if (storedata[k, 1] != "")
                    excelBom++;
    if (excelBom == 0)
            {
                Response.Write("<script language=javascript>alert('您导入的表格不合格式!')</script>");
            }
    else
            {
      //LoadDataToDataBase(storedata,excelBom) //将 storedata 中有用的数据写入到数据库中
            }
        }

  • 转载自http://www.hello-code.com/blog/asp.net/201402/2687.html

C#读取Excel数据操作大全的更多相关文章

  1. .NET读取Excel数据,提示错误:未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序

    解决.NET读取Excel数据时,提示错误:未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序的操作: 1. 检查本机是否安装Office Access,如果未安装去去h ...

  2. Python读取Excel数据并根据列名取值

    一直想将自己接触到的东西梳理一遍,可就是迈不出第一步,希望从这篇总结开始不要再做行动的矮人了. 最近测试过程中需要用到python读取excel用例数据,于是去了解和学习了下xlrd库,这里只记录使用 ...

  3. Delphi中使用python脚本读取Excel数据

    Delphi中使用python脚本读取Excel数据2007-10-18 17:28:22标签:Delphi Excel python原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 . ...

  4. c#读取Excel数据到Gridview

    #region 读取Excel数据到Gridview public void ReadExcel(string sExcelFile, GridView dgBom)    { DataTable E ...

  5. Java POI读取Excel数据,将数据写入到Excel表格

    1.准备 首先需要导入poi相应的jar包,包括: 下载地址:http://pan.baidu.com/s/1bpoxdz5 所需要的包的所在位置包括: 2.读取Excel数据代码 package S ...

  6. python 读取excel数据并将测试结果填入Excel

    python 读取excel数据并将测试结果填入Excel 读取一个Excel中的一条数据用例,请求接口,然后返回结果并反填到excel中.过程中会生成请求回来的文本,当然还会生成一个xml文件.具体 ...

  7. 机器学习之数据预处理,Pandas读取excel数据

    Python读写excel的工具库很多,比如最耳熟能详的xlrd.xlwt,xlutils,openpyxl等.其中xlrd和xlwt库通常配合使用,一个用于读,一个用于写excel.xlutils结 ...

  8. python 的两个模块xlwt,xlrd,写入和读取Excel数据

    http://www.cnblogs.com/fireme/p/3887284.html 这上面写的很全,不过我只需要简单的读和写的操作就ok了,下面是我写的读和写入Excel操作 读取Excel数据 ...

  9. 性能测试工具LoadRunner27-LR之读取Excel数据

    为何要读取Excel数据? 很多用户喜欢用Excel来统计数据,比如学生成绩表.个人信息等.有时需要把Excel中的数据来进行参数化,数据量比较多时,一个个在LR里输入是不现实的,因此需要用LR来导入 ...

随机推荐

  1. django 使用form组件提交数据之form表单提交

    django的form组件可以减少后台在进行一些重复性的验证工作,极大降低开发效率. 最近遇到一个问题: 当使用form表单提交数据后,如果数据格式不符合后台定义的规则,需要重新在前端页面填写数据. ...

  2. activiti如何让业务对象和对应的流程关联

    如何让业务对象和对应的流程 关联? 发现ProcessInstance 有个方法getBusinessKey()可以得到一个businessKey. ProcessInstance 对应数据库中的表a ...

  3. (2) iOS开发之UI处理-UILabel篇

    我们经常要根据内容去动态计算控件的高度,比如一个UILabel控件,常常要显示多行内容,并且计算出总高度,如果每个UILabel要多行显示,都要写这么一段代码是非常痛苦的,看代码如下:     我想大 ...

  4. Python之路day13 web 前端(JavaScript,DOM操作)

    参考链接:http://www.cnblogs.com/wupeiqi/articles/5433893.html day13 1. CSS示例 2. JavaScript 3. DOM操作 上节内容 ...

  5. Ansible 小手册系列 十五(Blocks 分组)

    当我们想在满足一个条件下,执行多个任务时,就需要分组了.而不再每个任务都要用when. tasks: - block: - command: echo 1 - shell: echo 2 - raw: ...

  6. 二十二、utl_inaddr(用于取得局域网或Internet环境中的主机名和IP地址)

    1.概述 作用:用于取得局域网或Internet环境中的主机名和IP地址. 2.包的组成 1).get_host_name作用:用于取得指定IP地址所对应的主机名语法:utl_inaddr.get_h ...

  7. ViewBag、ViewData、TempData之间的区别

    1.ViewBag and ViewData(非跨视图访问) 1)ViewBag是一种dynamic动态类型,用户可以自定义属性并为其赋值,它会在运行时动态解析(例:可以作为变量.数组等各种对象传递并 ...

  8. gitblit-禁用用户

    使用管理员账号(此处演示使用admin)登录到系统 右上角,找到用户菜单 再用户列表,找到要进行权限管理的用户,(演示alex) 禁用用户,取消权限 验证已经禁用 pull 权限被禁止

  9. ubuntu15.10运行android studio出错unable to run mksdcard sdk tool

    问题:ubuntu运行android studio出错unable to run mksdcard sdk tool 系统版本:系统是ubuntu 15.10 64位 确认原因:缺少lib 解决方法: ...

  10. 第2课:jmeter总结、Charles抓包

    1.  tps(throughput):每秒钟处理的事务数(请求数),定义与qps类似(qps:每秒完成的请求个数.)  响应时间(average):每个请求的平均响应时间 2. jmeter实现下载 ...