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]);
  • 相关阅读:
    打造基于CentOS7的xfce最简工作环境
    Linux下C程序的编辑,编译和运行以及调试
    修正 XE6 TListView 上方 SearchBok 右边的清除钮显示
    TabControl 显示彩色的图示 (XE6 Firemonkey)
    TSwitch 中文简繁显示支持(XE6 Android)
    改变 TMemo 的背景颜色 (Firemonkey)
    修正 XE5 Android 键盘三个问题
    Delphi 收藏
    展示 Popup 的使用方法
    ListView 下拉更新 (支持 Android)
  • 原文地址:https://www.cnblogs.com/jilichuan/p/2734696.html
Copyright © 2011-2022 走看看