讀取Excel表格中數據原型


寫下這篇博客來記錄自己的工作,這部分功能是讀取Excel表格中的數據,並通過c#中的datagridview控件將讀取的數據顯示出來。為了方便用戶,我設計了一個read按鈕,用戶點擊這個按鈕,會彈出打開文件的窗口,選擇想要打開的文件后,datagridview中會顯示讀取的表格數據。

程序運行截圖如下:

 主要代碼如下:

首先引用要System.Data.OleDb;

using System.Data.OleDb;

點擊read按鈕彈出打開文件的窗口:

private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog openfile
= new OpenFileDialog();
openfile.Filter
= "表格(*.xls)|*.xls|所有文件(*.*)|*.*";
if (openfile.FilterIndex == 1 && openfile.ShowDialog() == DialogResult.OK)
ExcelToDS(openfile.FileName);
}

需要在Designer.cs文件中添加最下面的一行代碼:

// button1
//
this.button1.Location = new System.Drawing.Point(12, 12);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(75, 23);
this.button1.TabIndex = 0;
this.button1.Text = "read";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button1_Click);
//

讀取數據顯示在datagrid中:

 public DataSet ExcelToDS(string path)
{
//源的定義
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + @path + ";" + "Extended Properties=Excel 8.0;";
OleDbConnection conn
= new OleDbConnection(strConn);//連接數據源
conn.Open();
//Sql語句
string strExcel = "";
OleDbDataAdapter myCommand
= null;
DataSet ds
= null;
strExcel
= "select * from [sheet1$]";
myCommand
= new OleDbDataAdapter(strExcel, strConn);//適配到數據源
ds = new DataSet();//定義存放的數據表
myCommand.Fill(ds, "table1");
dataGridView1.DataSource
= ds.Tables["table1"];
return ds;

}

很簡單的代碼,但是問題就出在連接字符串上面,后面一定要加上Extended Properties='Excel 8.0;

一切就像操作數據庫一樣,只是需要注意的是:數據提供程序使用Jet,同時需要指定Extended Properties 關鍵字設置 Excel 特定的屬性。

不同版本的Excel對應不同的屬性值: 

對於 Microsoft Excel 8.0 (97)、9.0 (2000) 和 10.0 (2002) 工作簿,請使用 Excel 8.0;

對於 Microsoft Excel 5.0 和 7.0 (95) 工作簿,請使用 Excel 5.0; 

對於 Microsoft Excel 4.0 工作簿,請使用 Excel 4.0; 

對於 Microsoft Excel 3.0 工作簿,請使用 Excel 3.0。


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com