Microsoft.ACE.OLEDB.12.0 读取混合列
当用OLEDB读取Excel的时候,解决同一列中“字符串”和“数字”两种格式同时存在,读取时不能正确显示“字符串”格式的问题:
DataSet dataSet = new DataSet();OleDbConnection oleDbConnection = null;try{oleDbConnection = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + ";Extended Properties=\"Excel 8.0;IMEX=1;\"");//Microsoft.Jet.OLEDB.4.0OleDbCommand selectCommand = new OleDbCommand();selectCommand.Connection = oleDbConnection;selectCommand.CommandText = "select * from [" + sheetName + "]";selectCommand.CommandType = CommandType.Text;OleDbDataAdapter adapter = new OleDbDataAdapter(selectCommand);dataSet = new DataSet();adapter.Fill(dataSet);}catch (Exception exception){oleDbConnection.Close();}finally{oleDbConnection.Close();}
当我们设置IMEX=1时将强制混合数据转换 为文本,但仅仅这种设置并不可靠,IMEX=1只确保在某列前8行数据至少有一个是文本项的时候才起作用,它只是把查找前8行数据中数据类型占优选择的行 为作了略微的改变。例如某列前8行数据全为纯数字,那么它仍然以数字类型作为该列的数据类型,随后行里的含有文本的数据仍然变空。
另一个改进的措施是IMEX=1与注册表 值TypeGuessRows配合使用,TypeGuessRows 值决定了ISAM 驱动程序从前几条数据采样确定数据类型,默认为“8”。可以通过 修改“HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Office\12.0\Access Connectivity Engine\Engines\Excel”下的该注册表值来更 改采样行数。如果设置为0,将分析所有数据行。
注意:Excel表数据列是单一列数据类型还是混合列数据类型列,是由取样行决定 而不是整列数据觉定。
转载于:https://www.cnblogs.com/JYuAn/p/9243204.html
Microsoft.ACE.OLEDB.12.0 读取混合列相关推荐
- Microsoft.Jet.OLEDB.4.0和Microsoft.ACE.OLEDB.12.0的区别
Jet 引擎,可以访问 Office 97-2003,但不能访问 Office 2007. ACE 引擎是随 Office 2007 一起发布的数据库连接组件,既可以访问 Office 2007,也可 ...
- Microsoft.Ace.OleDb.12.0 操作excel
在用c#操作excel的时候,碰到了一下的问题: 1.Microsoft.Ace.OleDb.12.0未安装,可以到下载2007 Office system 驱动程序AccessDatabaseEng ...
- System.InvalidOperationException:“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序
[写在前面] 今天在做c#和ACCESS的连接测试时出现了如下图的BUG: (本人VS为2017,access为2016 64位专业版) CODES: 报错提示 error location [原因分 ...
- 导入 Excel 未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序解决办法
错误提示:未在本地计算机上注册"Microsoft.ACE.OLEDB.12.0"提供程序. (System.Data) 解决办法: 去http://download.micros ...
- 从Excel中导入数据时,提示“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序”的解决办法...
注意,64位系统,用64位的补丁文件; https://www.cnblogs.com/A2008A/articles/2438962.html 操作系统:使用的是64位的Windows Server ...
- 未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序
为什么80%的码农都做不了架构师?>>> 错误信息:未在本地计算机上注册"microsoft.ACE.oledb.12.0"提供程序. 解决办法: 立即下载 ...
- “microsoft ace oledb 12.0 未注册”疑云
1. 有人说: 2015也是要安装32位的AccessDataengine,anycpu选32位优先才行,不然就是Microsoft.ACE.OLEDB.12.0未注册. hanstom,一个老调重弹 ...
- 未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0
从Excel中导入数据时,提示"未在本地计算机上注册"Microsoft.ACE.OLEDB.12.0"提供程序"的解决办法 操作系统:使用的是64位的Wind ...
- 错误:未在本地计算机上注册“Microsoft.Ace.OleDb.12.0”提供程序
前言 在win10上安装某然间,出现错误提示:未在本地计算机上注册"Microsoft.Ace.OleDb.12.0"提供程序. 未在本地计算机上注册"Microsoft ...
- 关于异常“The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine”的处理...
我们在利用SqlBlukcopy技术倒2010 或者2007格式的文件到SqlServer 数据库的时候,会发生如下错误: 原因如下: 1.在用SQL SERVER 2005访问.xlsx文件(off ...
最新文章
- 深度召回模型在QQ看点推荐中的应用实践
- 在NetBeans,Eclipse,IntelliJ,OpenShift和Maven上使用WildFly 9
- MySQl的一些基本知识(1)
- 【算法】剑指 Offer 18. 删除链表的节点
- 为什么黑客都用python-黑客编程为什么首选Python语言?这里告诉你答案!
- 常用头文件的可调用函数的归类笔记
- 【虚拟机】关于 virtualbox 和 vmware workstation 对比的个人见解
- 接口测试之Postman使用全图文指南(原来使用Postman测试API接口如此简单)
- server-sent events
- 物联网人工智能软件市场现状研究分析报告 -
- 滴滴打车CTO张博:生死战役,技术和时间赛跑
- 小师妹教我如何轻松拿下BAT、网易、蘑菇街的offer
- linux格式化光盘找不到介质,Linux挂载光盘的问题解决方案(mount: you must specify the filesystemnbs...
- UG NX 12抽取体特征
- 全国考研计算机成绩排名,计算机考研模拟考试全国排行
- 手机应用推广必备发布渠道【安卓渠道汇】
- 微信小程序富文本长按复制粘贴
- 和平精英当前您所在的服务器更新维护,光子再次更新体验服招募时间 3月新版本疑似再度延迟...
- BugkuCTF——WEB(1)
- 杭州社保转移及公积金领取
热门文章
- 帆软分组合并字符串、提取字符串中的数字、判断多项字符串至少一项被包含
- php ftp_ascii,php ftp函数
- python curl 获取返回值_php curl_exec()函数 CURL获取返回值的方法
- sql中exists,not exists的用法 1
- ExtJS Grid中文字链接点击事件的更合理的处理办法
- sysstat工具包提供的主要命令
- 【5月8 】NVIDIA 迁移学习工具包(TLT)最佳实践
- 2月12 CNN结构特征+Faster R-CNN
- Java多线程实现-线程池
- 简易CPU的C++实现