.NET中使用OleDb读取Excel
2014-10-08 22:36
309 查看
在.NET中可以用OleDb(Object linking and embeding DataBase)来访问Excel
最开始用的Excel对象接口引擎为Jet,但是在测试时发现对于Excel2013版本的文件,在执行到31行时会报错"外部表不是标准格式".将Excel另存为2003-2007版本时不报错.
原来Jet引擎和Ace引擎是有区别的,具体参考 /article/1611064.html
using System; using System.Data; using System.Windows.Forms; using System.Data.OleDb; namespace ExcelDemo { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { //xls为Excel2003-2007版本的Excel文件后缀,而xlsx为2007以上版本的后缀名 //var dt = ExcelToDataTable(@"E:\WorkSpace\VS\ExcelDemo\test.xls", "sheet1"); var dt = ExcelToDataTable(@"E:\WorkSpace\VS\ExcelDemo\test.xlsx", "sheet1"); this.dataGridView1.DataSource=dt; } private DataTable ExcelToDataTable(string strExcelFileName, string strSheetName) { //Jet和Ace都是连接Excel对象的接口引擎,但是二者有区别. //string strConn = "Provider=Microsoft.Jet.OLEDB.8.0;" + "Data Source=" + strExcelFileName + ";" + //"Extended Properties='Excel 8.0;HDR=Yes;IMEX=1';"; string strConn = @"Provider=Microsoft.Ace.OLEDB.12.0;" + "Data Source=" + strExcelFileName + ";" + "Extended Properties='Excel 12.0;HDR=Yes;IMEX=1';"; string strExcel = string.Format("select * from [{0}$]", strSheetName); //创建OleDb连接,对于特定的数据源类型,传入不同的连接字符串 OleDbConnection connection = new OleDbConnection(strConn); connection.Open(); OleDbDataAdapter da = new OleDbDataAdapter(strExcel,connection); var ds = new DataSet(); da.Fill(ds,strSheetName); return ds.Tables[strSheetName]; } } }
最开始用的Excel对象接口引擎为Jet,但是在测试时发现对于Excel2013版本的文件,在执行到31行时会报错"外部表不是标准格式".将Excel另存为2003-2007版本时不报错.
原来Jet引擎和Ace引擎是有区别的,具体参考 /article/1611064.html
相关文章推荐
- c#.net使用oledb读取excel
- 使用OLEDB读取不同版本Excel数据的连接字符串设置
- 使用OLEDB可以对excel文件进行读取1
- 使用OleDbConnection读取Excel时的Microsoft.Ace.OleDb.12.0异常
- 【.Net】使用OleDB对Excel进行读写
- C#使用OLEDB读取Excel的一个注意点
- .NET项目笔记——使用NPOI读取Excel导入数据和导出Excel的功能
- C# 使用OLEDB读取不同版本Excel数据的连接字符串
- 使用OLEDB读取不同版本Excel数据的连接字符串设置
- .net使用Office组件读取Excel,引用Microsoft.Office.Interop.Excel出现的问题
- .net 怎么使用OleDb读取加密excel2010(密码已知)
- 使用OLEDB方式读取Excel文件到DataTable中数据类型的处理
- 【Bug】c#使用oleDB读excel读取不到最后一列,把Excel表格打开随便改动一列的格式就能读取出来了。请问这是什么问题
- C#使用OLEDB读取Excel的一个注意点
- 怎样使用oledb读取Excel?
- 使用OLEDB读取不同版本Excel数据的连接字符串设置
- 使用OleDb读取Excel所有的Table并用Sheet名称作为表名称
- 使用OLEDB方式 读取excel和csv文件
- 使用OLEDB读取不同版本Excel数据的连接字符串设置
- asp.net 解决使用OLEDB导入excel数据时同时包含文本和数字的列无法正常读取情况