使用OLEDB读取不同版本Excel数据的连接字符串设置
来源:互联网 发布:种族天赋知乎 编辑:程序博客网 时间:2024/06/01 20:03
用OLEDB通过设置连接字符串可以像读取sqlserver一样将excel中的数据读取出来,但是excel2003和excel2007/2010的连接字符串是不同的。
/// <summary> /// 把数据从Excel装载到DataTable /// </summary> /// <param name="pathName">带路径的Excel文件名</param> /// <param name="sheetName">工作表名</param> /// <param name="tbContainer">将数据存入的DataTable</param> /// <returns></returns> public DataTable ExcelToDataTable(string pathName, string sheetName) { DataTable tbContainer = new DataTable(); string strConn = string.Empty; if (string.IsNullOrEmpty(sheetName)) { sheetName = "Sheet1"; } FileInfo file = new FileInfo(pathName); if (!file.Exists) { throw new Exception("文件不存在"); } string extension = file.Extension; switch (extension) { case ".xls": strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pathName + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'"; break; case ".xlsx": strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + pathName + ";Extended Properties='Excel 12.0;HDR=Yes;IMEX=1;'"; break; default: strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pathName + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'"; break; } //链接Excel OleDbConnection cnnxls = new OleDbConnection(strConn); //读取Excel里面有 表Sheet1 OleDbDataAdapter oda = new OleDbDataAdapter(string.Format("select * from [{0}$]", sheetName), cnnxls); DataSet ds = new DataSet(); //将Excel里面有表内容装载到内存表中! oda.Fill(tbContainer); return tbContainer; }
这里需要注意的地方是,当文件的后缀名为.xlsx(excel2007/2010)时的连接字符串是"Provider=Microsoft.ACE.OLEDB.12.0;....",注意中间红色部分不是"Jet"。
0 0
- 使用OLEDB读取不同版本Excel数据的连接字符串设置
- 使用OLEDB读取不同版本Excel数据的连接字符串设置
- 使用OLEDB读取不同版本Excel数据的连接字符串设置
- 使用OLEDB读取不同版本Excel数据的连接字符串设置
- [OLEDB]OLEDB对于不同版本Excel的连接字符串
- C#读取不同版本excel的连接字符串
- 不同Excel版本的连接字符串
- OleDb操作不同版本的Excel
- OLEDB方式读取Excel丢失数据、字符串截断的原因和解决方法
- 用OleDb读取Excel数据
- 怎样使用oledb读取Excel?
- OLEDB方式读取Excel丢失数据的原因和解决方法
- C#使用OLEDB读取Excel的一个注意点
- 用OleDb读取Excel中的数据
- C# OLEDB方式读取Excel文件数据
- 连接不同数据--OleDb(不完整)
- ACE OLEDB 12.0连接字符串(Excel 2007)
- ACE OLEDB 12.0连接字符串(Excel 2007)
- 嵌入式 互斥锁和读写锁区别
- 百度分享--分享按钮的实现
- openwrt下安装和配置ser2net
- Android性能优化之查看GPU渲染性能
- 嵌入式 自旋锁、互斥锁、读写锁、递归锁
- 使用OLEDB读取不同版本Excel数据的连接字符串设置
- 如何编写更容易排查问题的错误日志
- js统计文本框内已输入字数
- 程序员的思维习惯
- 抽奖项目总结
- Linux【Red Hat】——sudo用户管理
- js中typeOf用法
- 关于embed标签播放flash的方法
- android 布局之滑动探究 scrollTo 和 scrollBy 方法使用说明