C#自动判断Excel版本使用不同的连接字符串

用OLEDB通过设置连接字符串可以像读取sqlserver一样将excel中的数据读取出来,但是excel2003和excel2007/2010的连接字符串是不同的。

///

/// 把数据从Excel装载到DataTable

///

/// 带路径的Excel文件名

/// 工作表名

/// 将数据存入的DataTable

///

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"。相关阅读:

Win7系统添加打印机无Print Spooler服务无注册表解决方法

在linux中使用包管理器安装node.js

Bootstrap下拉菜单效果实例代码分享

基于js实现投票的实例代码

探讨.get .post .ajax ztree 还有后台servlet传递数据的相关知识

element.style覆盖样式因优先级顺序导致的解决方法

js与运算符和或运算符的妙用

编写安全 PHP应用程序的七个习惯深入分析

举例讲解C#中自动实现的属性

详述JavaScript实现继承的几种方式(推荐)

在支持HTML5的浏览器上运行WebGL程序的方法

css自适应宽度 多种方法实现宽度自适应的水平居中

24个canvas基础知识小结

Bootstrap每天必学之下拉菜单

php判断版本根据版本调用不同,C#_C#自动判断Excel版本使用不同的连接字符串,用OLEDB通过设置连接字符串可 - phpStudy...相关推荐

  1. 判断输入的整数是否为素数_C语言 | 判断是否素数

    "要成为绝世高手,并非一朝一夕,除非是天生武学奇才,但是这种人-万中无一" --包租婆这道理放在C语言学习上也一并受用.在编程方面有着天赋异禀的人毕竟是少数,我们大多数人想要从C语 ...

  2. 转《针对不同版本的ie调用不同css样式》

    转<针对不同版本的ie调用不同css样式> 因为IE各版本的浏览器对我们制作的WEB标准的页面解释不一样,具体就是对CSS的解释不同,我们为了兼容这些,可运用条件注释来各自定义,最终达到兼 ...

  3. Java 常用的工具类—判断Excel版本读取Excel/CSV文件

    以下内容均来自实际项目需求,记录下,网上找的读取Excel会出现不少问题,下面代码是经过好多次测试改进的符合现在项目的代码,如有不同要求,请自行修改,代码均只去掉了包名. 注:我们的Excel 第一行 ...

  4. VBS判断excel版本

    想要实现如下的两个目标: 1.通过 vbs判断某路径下的数个excel文件是03版本还是07版本,如果有文件是03的,跳出,如果都是07的则调用某 批处理文件. 2.同上类似,不过是单个判断,指定文件 ...

  5. userAgent,JS用户代理检测——判断浏览器内核、浏览器、浏览器平台、windows操作系统版本、移动设备、游戏系统

    1.识别浏览器呈现引擎 为了不在全局作用域中添加多余变量,这里使用单例模式(什么是单例模式?)来封装检测脚本.检测脚本的基本代码如下所示: 1 var client = function() { 2 ...

  6. 自动判断浏览器的中英文版本自动跳转网站中英文页面代码

    许多网站现在都是依靠自动判断浏览器的中英文版本来判断给你打开网站的中文还是英文版,也许好多朋友还不知道这个代码,今天正好给公司改版企业网站用到了,在此公布出来,供大家一起学习. HTML网页根据来访者 ...

  7. java快速注释怎么配置_详解如何在低版本的Spring中快速实现类似自动配置的功能...

    在 Spring 4 后才引入了 @Conditional 等条件注解,它是 Spring Boot 中实现自动配置的最大功臣! 那么问题来了:如果我们还在使用 Spring 3.x 的老版本,这时候 ...

  8. NPOI 导入导出和Excel版本,错误文件扩展名和文件的格式不匹配

    读取时可以自动判断Excel版本 IWorkbook workbook = NPOI.SS.UserModel.WorkbookFactory.Create(fs); 调用这个方法,内部自动判断Exc ...

  9. excel版本问题解决方案

    在实际的开发中遇到过的问题,简单的描述一下.就是需要解析Excel 文件,读取数据入库,并且将文件也入库(文件路径).解析完成后,文件入库的数据莫名其妙的多了一个文件名0000000000000 的文 ...

最新文章

  1. Transformer的潜在竞争对手QRNN论文解读,训练更快的RNN
  2. python恶搞表情包-用 Python 把你的朋友变成表情包
  3. Latent semantic analysis note(LSA)
  4. 40岁了,还要跟小年青一样埋头敲代码吗?
  5. 使用Lightbox制作照片条
  6. RabbitMQ教程C#版 “Hello World”
  7. 为了自动驾驶,Uber每月烧钱1.3亿
  8. Java小项目:坦克大战(二)
  9. ios 根据文字数量计算UILabel高度(已修改)
  10. 帆软FineMobile 消息推送/定时调度
  11. 【三维路径规划】基于matlab粒子群和遗传算法多无人机三维路径规划【含Matlab源码 333期】
  12. oracle em 证书错误,导航阻止
  13. c语言迷宫闯关游戏大全,C语言实现迷宫小游戏
  14. DevOps :Jenkins pipeline + sonarQube 完成静态检测 + junit 覆盖率报告。
  15. 我们过度解读了鲁迅了么?
  16. 致谢词大全字C语言,C语言毕业论文致谢词范文
  17. jira -workflow之父级任务关注人copy到子任务
  18. 李瑞霖4.13黄金走势短线放空原油能否筑底反弹?行情涨跌分析
  19. 做外贸怎么起步,从哪里开发客户
  20. BZOJ1812 RIV 树形dp

热门文章

  1. Linux/Unix mii-tool command
  2. 在x86上成功使用gentoo系统上安装的grub2启动 Mac OS X Leopard 10.5.7
  3. xmlHttpRequest避免缓存的办法
  4. 超级节点根据自身的能力参与维基链生态建设
  5. C++中operator关键字(重载操作符)
  6. qtcreator cannot find -lts
  7. MapReduce框架Mapper和Reducer类源码分析
  8. 全部与精简切换显示jQuery实例教程
  9. 【Win8启动后自动进入传统桌面设置】
  10. 不死鸡和不死牛的故事