我正在使用此代码打开excel文件并将其保存在DataGridView中:
string name = "Items"; string constr = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source=" + Dialog_Excel.FileName.ToString() + "; Extented Properties =\"Excel 8.0; HDR=Yes;\";"; OleDbConnection con = new OleDbConnection(constr); OleDbDataAdapter sda = new OleDbDataAdapter("Select * From [" + name + "$]",con); DataTable data = new DataTable(); sda.Fill(data); grid_items.DataSource = data;
如上所述:
This youtube link
但是我收到了ISAM错误.有什么建议吗?
解决方法
由于您没有回复我上面的评论,我正在为两者发布解决方案.
您在扩展属性中缺少’
对于Excel 2003试试这个(经过试验和测试)
private void button1_Click(object sender,EventArgs e) { String name = "Items"; String constr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + "C:\\Sample.xls" + ";Extended Properties='Excel 8.0;HDR=YES;';"; OleDbConnection con = new OleDbConnection(constr); OleDbCommand oconn = new OleDbCommand("Select * From [" + name + "$]",con); con.Open(); OleDbDataAdapter sda = new OleDbDataAdapter(oconn); DataTable data = new DataTable(); sda.Fill(data); grid_items.DataSource = data; }
顺便说一下,我很久以前就不再使用Jet了.我现在使用ACE.
private void button1_Click(object sender,EventArgs e) { String name = "Items"; String constr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + "C:\\Sample.xls" + ";Extended Properties='Excel 8.0;HDR=YES;';"; OleDbConnection con = new OleDbConnection(constr); OleDbCommand oconn = new OleDbCommand("Select * From [" + name + "$]",con); con.Open(); OleDbDataAdapter sda = new OleDbDataAdapter(oconn); DataTable data = new DataTable(); sda.Fill(data); grid_items.DataSource = data; }
对于Excel 2007
private void button1_Click(object sender,EventArgs e) { String name = "Items"; String constr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + "C:\\Sample.xlsx" + ";Extended Properties='Excel 12.0 XML;HDR=YES;';"; OleDbConnection con = new OleDbConnection(constr); OleDbCommand oconn = new OleDbCommand("Select * From [" + name + "$]",con); con.Open(); OleDbDataAdapter sda = new OleDbDataAdapter(oconn); DataTable data = new DataTable(); sda.Fill(data); grid_items.DataSource = data; }