string strconn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:/MyExcel.xls;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1''" " ;
OleDbConnection conn = new OleDbConnection(strconn);
conn.Open();
if (bo == false)
{
comboBox1.Items.Clear();
DataTable dt = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
foreach (DataRow dr in dt.Rows)
{
comboBox1.Items.Add((String)dr["TABLE_NAME"]);
//MessageBox.Show((String)dr["TABLE_NAME"]);
}
//comboBox1.Text = comboBox1.Items[0].ToString();
}
else
{
string sql = "select * from " + comboBox1.Text;
OleDbDataAdapter aper = new OleDbDataAdapter(sql, conn);
DataSet myset = new DataSet();
aper.Fill(myset, comboBox1.Text);
dataGridView1.DataSource = myset.Tables[comboBox1.Text];
}
conn.Close();
备注:
@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:/MyExcel.xls;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"""
"HDR=Yes;" indicates that the first row contains columnnames, not data
"IMEX=1;" tells the driver to always read "intermixed" data columns as text
TIP! SQL syntax: "SELECT * FROM [sheet1$]" - i.e. worksheet name followed by a "$" and wrapped in "[" "]" brackets.
如果第一行是数据而不是标题的话, 应该写: "HDR=No;"
"IMEX=1;" tells the driver to always read "intermixed" data columns as text