C#读取Excel表格中的数据

本文介绍如何使用C#语言读取Excel表中的数据,并通过DataGrid进行展示,包括创建数据链接、获取数据集、设置DataGrid属性等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1读取数据
读取Excel表格中的数据和读取数据库中的数据是非常类似的,在某种程度上Excel表格可以看成是一张一张的数据表。二者的主要区别在于所使用的数据引擎不一样。可通过下列代码实现读取Excel表格数据:

        //创建一个数据链接
     string strCon = "Provider=Microsoft.Jet.Oledb.4.0;Data Source= c:\\sample.xls;;Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";

        OleDbConnection myConn = new OleDbConnection ( strCon ) ;
        string strCom = " SELECT * FROM [Sheet1$] " ;
        myConn.Open ( ) ;
        file://打开数据链接,得到一个数据集
        OleDbDataAdapter myCommand = new OleDbDataAdapter ( strCom , myConn ) ;
        file://创建一个 DataSet对象
        myDataSet = new DataSet ( ) ;
        file://得到自己的DataSet对象
        myCommand.Fill ( myDataSet , "[Sheet1$]" ) ;
        file://关闭此数据链接
        myConn.Close ( ) ;
   读取Excel表格中的数据其实和读取数据库中的数据没有什么实质上的区别。
   注释:这里读取的是C盘根目录下的"Sample.xls"文件。
2用DataGrid来显示得到的数据集:
   在得到DataSet对象后,只需要通过下列二行代码,就可以把数据集用DataGrid显示出来了:

DataGrid1.DataMember= "[Sheet1$]" ;
          DataGrid1.DataSource = myDataSet ;

3用 C#读取Excel表格,并用DataGrid显示出来的程序代码(Read.cs)

using System ;
using System.Drawing ;
using System.Collections ;
using System.ComponentModel ;
using System.Windows.Forms ;
using System.Data ;
using System.Data.OleDb ;
public class Form1 : Form
{
private Button button1 ;
private System.Data.DataSet myDataSet ;
private DataGrid DataGrid1 ;
private System.ComponentModel.Container components = null ;

public Form1 ( )
{
file://初始化窗体中的各个组件
InitializeComponent ( ) ;
file://打开数据链接,得到数据集
GetConnect ( ) ;
}
file://清除程序中使用过的资源
protected override void Dispose ( bool disposing )
{
if ( disposing )
{
if ( components != null )
{
components.Dispose ( ) ;
}
}
base.Dispose ( disposing ) ;
}

private void GetConnect ( )
{
file://创建一个数据链接
string strCon = "Provider=Microsoft.Jet.Oledb.4.0;Data Source= c:\\sample.xls;;Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";
OleDbConnection myConn = new OleDbConnection ( strCon ) ;
string strCom = " SELECT * FROM [Sheet1$] " ;
myConn.Open ( ) ;
file://打开数据链接,得到一个数据集
OleDbDataAdapter myCommand = new OleDbDataAdapter ( strCom , myConn ) ;
file://创建一个 DataSet对象
myDataSet = new DataSet ( ) ;
file://得到自己的DataSet对象
myCommand.Fill ( myDataSet , "[Sheet1$]" ) ;
file://关闭此数据链接
myConn.Close ( ) ;
}
private void InitializeComponent ( )
{
DataGrid1 = new DataGrid ( ) ;
button1 = new Button ( ) ;
SuspendLayout ( ) ;
DataGrid1.Name = "DataGrid1";
DataGrid1.Size = new System.Drawing.Size ( 400 , 200 ) ;

button1.Location = new System.Drawing.Point ( 124 , 240 ) ;
button1.Name = "button1" ;
button1.TabIndex = 1 ;
button1.Text = "读取数据" ;
button1.Size = new System.Drawing.Size (84 , 24 ) ;
button1.Click += new System.EventHandler ( this.button1_Click ) ;

this.AutoScaleBaseSize = new System.Drawing.Size ( 6 , 14 ) ;
this.ClientSize = new System.Drawing.Size ( 400 , 280 ) ;
this.Controls.Add ( button1 ) ;
this.Controls.Add ( DataGrid1 ) ;
this.Name = "Form1" ;
this.Text = "读取Excle表格中的数据,并用DataGrid显示出来!" ;
this.ResumeLayout ( false ) ;

}
private void button1_Click ( object sender , System.EventArgs e )
{
DataGrid1.DataMember= "[Sheet1$]" ;
DataGrid1.DataSource = myDataSet ;

}
static void Main ( )
{
Application.Run ( new Form1 ( ) ) ;
}
}

4总结:
  以上只是读取了Excel表格中"Sheet1"中的数据,对于其他"Sheet"中的内容,可以参照读取"Sheet1"中的程序,只作一点修改就可以了,譬如要读取"Sheet2"中的内容,只需要把"Read.cs"程序中的"Sheet1$"改成"Sheet2$"就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值