分享

C# winform 开发之Excel操作(二)

 3dC 2017-03-23

在上一篇中关于Excel表格的打开,已经详细的讲解了Excel命名空间的引用,这里我就不重复了!

网址链接:

http://blog.csdn.net/kkfdsa132/archive/2010/03/14/5379529.aspx

 

下面,我们进入主题。

读取Excel方法有多种,这里我主要讲两种方式。

方法一:sql语句读取Excel

这种方法,对于连接过数据库的人来说,一定不陌生。

原理大致为:通过select语句读取Excel表的内容,存放在dataset中。这样,我们就可以很方便操作Excel表格。

大致分为以下几步:

记得先添加命名空间:

using System.Data.OleDb;    //Excel表数据操作

1.创建连接,引用协议

 string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";

//其中 参数”filePath“,是安放Excel的位置。例如:E:/1.xls。

OleDbConnection OleConn = new OleDbConnection(strConn);

2.打开连接,并执行sql语句,别忘了末尾关闭连接

OleConn.Open();
String sql = "SELECT * FROM  [Sheet1$]";//可是更改Sheet名称,比如sheet2,sheet3等等

//这是要执行的sql语句,你应该不陌生吧!

OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn);
DataSet OleDsExcle = new DataSet();
OleDaExcel.Fill(OleDsExcle, "Sheet1");
OleConn.Close(); 

 

如果,还不清楚,不怕。下面,我们通过实例来加深理解。

源代码:

 public static DataTable ReadExcel(string filePath)
        {
            try
            {
                string strConn;
                strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";
                OleDbConnection OleConn = new OleDbConnection(strConn);
                OleConn.Open();
                String sql = "SELECT * FROM  [Sheet1$]";//可是更改Sheet名称,比如sheet2,等等

                OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn);
                DataSet OleDsExcle = new DataSet();
                OleDaExcel.Fill(OleDsExcle, "Sheet1");
                OleConn.Close();

                return OleDsExcle.Tables["Sheet1"];
            }
            catch (Exception err)
            {
                MessageBox.Show("数据绑定Excel失败!失败原因:" + err.Message, "提示信息",
                    MessageBoxButtons.OK, MessageBoxIcon.Information);
                return null;
            }
        }

 

以上代码实现了Excel的读取,并把内容存放在dataset中. 接着,讲解下如何应用该datatable。

方式一:把datatable内容读取到DataGridView中,显示所有Excel内容。
1.先添加DataGridView控件,并命名为dataGridView1
2.添加DataGridView数据绑定语句如下:
DataTable dt;   //存放Excel表的内容
dt=ReadExcel("E://1.xls"); //这里的路径,指的是你Excel表格存放的路径
dataGridView1.DataSource = dt;
就这样,简单的显示,就完成了。

方式二:只显示你先要的内容。这个可以通过把DataTable当做数组来操作。
1.添加一个label标签,命名为label1
2.添加语句;
label1.Text = dt.Rows[x][y].ToString();
//这里的参数 x,y,对应的是你Excel表格的单元格内容。注意下,x,y是从0开始取值。

最后还有一点要说明,就是读取的内容是从Excel表格的第二行开始。第一行,类似于数据库中的字段名,是不读取的。

 

在后面的文章中,将继续和大家分享Excel的其他基本操作。
希望,对大家有用。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    来自: 3dC > 《c#》

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多