zoukankan      html  css  js  c++  java
  • 利用C#读取excel的一种方法

    首先是源码:
    using System;
     

    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Data.SqlClient;
    using System.Data.OleDb;
    using System.Data.SqlTypes;
    using System.Data.Common;
    using System.Data.Sql;
    using System.Data;
    namespace test
    {
        class Program
        {
            static void Main(string[] args)
            {
                string constr = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source =e:\\news.xls;Extended Properties=Excel 8.0";
                string sqlcmd = "select * from [NewsData]";
                OleDbCommand oc = new OleDbCommand(sqlcmd, new OleDbConnection(constr));
                OleDbDataAdapter ap = new OleDbDataAdapter(oc);
                DataSet ds = new DataSet();
                ap.Fill(ds);
                DataTable dt =  ds.Tables[0];
                int count = 0;
                foreach (DataRow dr in dt.Rows)
                {
                    //Console.Write(dc.ColumnName+"  ");
                    
    //Console.WriteLine(dc.DataType);

                    DataColumn dc = dt.Columns[0];
                    {
                        Console.WriteLine(dr[dc]);
                    }
                    if (count !=0 )
                        break;
                    count++;
                }
                Console.ReadLine();

            }
        }
    }

    这个例子主要是根据OleDb的方法来讲Excel文件当做数据库来访问,具体步骤如下:

    (1)首先设置连接字符串: string constr = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source =e:\\news.xls;Extended Properties=Excel 8.0";

    其中Data Source后面应该跟着自己的文件。 

    (2)然后OleDbCommend对象,这个对象就相对于命令,也就是创建你准备操作的命令。参数是命令字符串和数据库连接,对数据库操作肯定要连接到数据库上,因此命令的前一步是数据库连接,但是我们和在一个函数里写了。

    (3)创建了这个命令,就会对数据库进行操作,操作的设置、进行、结果都在上面那个OleDbCommend对象中,当让我们需要从中找出来结果,这里我们利用DataAdapter,这个是个适配器,我们的操作得出的结果是一一个集,什么东东都用,适配器的作用就是对结果进行整合,给一个标准的数据集DataSet,也可以这样理解:适配器是个桥梁,A端是数据库,B端是我们要找的数据集,它起到一个适配作用,不管A端什么数据库,它都整理好提供给B端标准数据集。也有网友这么理解:而dataapater则与dataset配合,摆脱了操作数据过程中对数据库连接的依赖。一个最形象的比喻是,dataset是临时仓库,数据库是仓库,则适配器则是之间的一辆卡车,一次性从仓库中把货运到临时仓库,而不需要一件一件的来回跑。这就是其最大的好处。http://hi.baidu.com/roxxjzelbmcqxyr/item/a58f97cf8bf626d597445225

    (4)对于找回来的DataSet,我们首先要获得表,关系数据库都是根据表存在,DataTable,然后通过这个DataTable可以获得Columns列的集合,以及Rows的集合。然后就可以通过行列操作获得具体的元素值。

    (5)对于行列操作,详见源码 

    DataRow dr = dt.Rows[0];
    DataColumn dc = dt.Columns[0];
    Console.WriteLine(dr[dc]);
  • 相关阅读:
    Oracle问题之ORA-12560TNS:协议适配器错误
    调用脚本的方式自动的创建或者是更新oracle数据库自带的Seq序列号的值
    linux在telnet情况下root登录提示login incorrect
    CentOS 7 中 Systemd详解
    CentOS7 下安装telnet服务
    linux 安装telnet命令及使用
    Linux安装telnet
    Linux系统xinetd服务启动不了
    linux服务安装与配置(二):安装xinetd服务
    Linux超级守护进程——xinetd
  • 原文地址:https://www.cnblogs.com/jilichuan/p/2734696.html
Copyright © 2011-2022 走看看