C# 读取Excel数据到DataTabel

View Code
/// <summary>
/// 根据excel的文件的路径提取其中表的数据
/// </summary>
/// <param name="Path">Excel文件的路径</param>
private void GetDataFromExcelWithAppointSheetName(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();

//返回Excel的架构,包括各个sheet表的名称,类型,创建时间和修改时间等
DataTable dtSheetName = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "Table" });

//包含excel中表名的字符串数组
string[] strTableNames = new string[dtSheetName.Rows.Count];
for (int k = 0; k < dtSheetName.Rows.Count; k++)
{
strTableNames[k]
= dtSheetName.Rows[k]["TABLE_NAME"].ToString();
}

OleDbDataAdapter myCommand
= null;
DataTable dt
= new DataTable();

//从指定的表明查询数据,可先把所有表明列出来供用户选择
string strExcel = "select * from [" + strTableNames[0] + "]";
myCommand
= new OleDbDataAdapter(strExcel, strConn);
dt
= new DataTable();
myCommand.Fill(dt);

dataGridView1.DataSource
= dt; //绑定到界面
posted @ 2011-05-16 19:37  焚情、烈日  阅读(293)  评论(0编辑  收藏  举报