读取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。


注意!

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



 
  © 2014-2022 ITdaan.com