使用C#中的OLEDB连接读取Excel文件
我试图读取Excel文件,并将数据放入C#中的数据表。当我尝试使用Excel 97-2003文件格式(.xls)它工作正常。但是当我尝试使用Excel工作簿格式(.xlsx)它是得到如下的错误,
“外部表格不是预期的格式”。
这是我的代码段。
string file_name = null; OpenFileDialog file_d = new OpenFileDialog(); file_d.Filter = "Excel Files (*.xlsx)|*.xlsx|Excel Files (*.xls)|*.xls"; file_d.Title = "Select Attendance Record"; if (file_d.ShowDialog() == DialogResult.OK) { file_name = file_d.FileName; } String ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + file_name + ";Extended Properties=Excel 8.0;"; try { System.Data.OleDb.OleDbConnection MyConnection; System.Data.DataSet DtSet; System.Data.OleDb.OleDbDataAdapter MyCommand; MyConnection = new System.Data.OleDb.OleDbConnection(ConnectionString); MyCommand = new System.Data.OleDb.OleDbDataAdapter("select * from [Sheet1$]", MyConnection); MyCommand.TableMappings.Add("Table", "TestTable"); DtSet = new System.Data.DataSet(); MyCommand.Fill(DtSet); dataGridView1.DataSource = DtSet.Tables[0]; MyConnection.Close(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); }
请帮助我的错误。感谢先进。
自Office 2007以来,“.xlsx”和其他Office文件都是XML格式。 您可以使用OpenXML来读取或写入它们。
- Excel.Workbook单击取消引发exception
- 智能感知无法检测vb.net创build的DLL函数
- Excel中的Range.Replace
- System.AccessViolationException:试图读取或写入受保护的内存
- 在awws lambda中操作excel文件的其他方法
- Excel API另存为对话框问题
- 使用openxml sdk将图像添加到excel中
- 处理dynamicCRM插件中的自定义实体logging中附加的Excel文件
- 我可以使用Microsoft.Office.Interop.Excel在未安装Microsoft Office包的系统上创buildExcel文件吗?