取得Excel表结构
作者:大鹏 发布于:2008-3-11 22:56 Tuesday 分类:Asp.Net 2.0
今天才发现这个GetOleDbSchemaTable还挺管用的。可以通个这个方法得到Excel文件中有多少个Sheet表并可以列出每个Sheet表的结构,包括表中字段的结构是否主键等信息。和ADO.NET 中 DataReader 对象的 GetSchemaTable很类似。
[codes=c#]
DialogResult dr = openFileDialog1.ShowDialog();
string path;
if (dr == DialogResult.OK)
{
//MessageBox.Show(openFileDialog1.FileName);
path = openFileDialog1.FileName;
string excelConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + path + ";" + "Extended Properties=Excel 8.0;";
OleDbConnection excelConn = new OleDbConnection(excelConnectionString);
excelConn.Open();
try
{
DataTable dt = excelConn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new object[] { null, null, "sheet1$", null });
//cbbSheets.Items.Clear();
//for (int i = 0; i < dt.Rows.Count; i++)
//{
// cbbSheets.Items.Add(dt.Rows[i]["TABLE_NAME"].ToString());
//}
dataGridView1.DataSource = dt.DefaultView;
}
catch (Exception ex)
{
MessageBox.Show("Error:" + ex.Message, "Error:", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
excelConn.Close();
}
[/codes]
标签: 数据结构 数据库 c# sqlserver2005 excel