1、问题出现

在开发应用程序的过程中,比较常用一功能就是通过oledb驱动读取excel、csv、text等文件;而最近有客户反映,在使用短信平台(下载地址:http://www.sms1086.com/product/detail-150.html),发现出现以下问题:

还有一种情况,excel只能导入部分,而其他的导入不进去。

而其他excel或text文件,不会出现此类问题。但是将有问题的excel粘贴到新建的文件中,还会出现类似问题。

2、网上解答

在博客园http://www.cnblogs.com/clare-zhang/archive/2012/05/30/2525884.html给出了解决方案:

查询注册表,将TypeGuessRows=8 修改为 TypeGuessRows=0

    下图是Win10 64位企业版的修改位置,操作系统不通,修改地方不通;建议查询注册表,修改所有TypeGuessRows为0

按照此方法,可解决Excel数据丢失问题。棒棒的~~~~~~~~

3、读取Text文件数据丢失

Excel文件问题解决了,但是在读取csv、text文件,仍然出现数据丢失的问题,是什么原因引起的呢?与excel对比,不难发现,还是注册表配置的问题。

通过查询注册表,找到Text的驱动:

修改MaxScanRows=0即可解决问题。

4、TypeGuessRows详解

要使用 Jet OLE DB 提供程序访问 Excel 工作簿,请使用具有下列语法的连接字符串:

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\sms.xls;Extended Properties="Excel 8.0;HDR=YES;"

在连接字符串中,用 Data Source 参数指定工作簿的完整路径和文件名。Extended Properties 参数可包含两种属性:一个属性用于 ISAM 版本,一个属性用于指示表是否包括标题。
    使用 Excel 工作簿时,默认情况下,区域中的第一行是标题行(或字段名称)。如果第一个区域不包含标题,您可以在连接字符串的扩展属性中指定 HDR=NO。如果您在连接字符串中指定 HDR=NO,Jet OLE DB 提供程序将自动为您命名字段(F1 表示第一个字段,F2 表示第二个字段,依此类推)。

与传统的数据库不同,在 Excel 表中没有指定列的数据类型的直接方式。而是,OLE DB 提供程序通过对一列中的八行进行扫描来猜测 该字段的数据类型。您可以通过为连接字符串的扩展属性中的 MAXSCANROWS 设置指定一个一 (1) 至十六 (16) 之间的值,来更改要扫描的行数。

而注册表中TypeGuessRows=8,默认从前8行进行扫描来猜测该字段的数据类型,设置TypeGuessRows=0表示不猜测数据类型。

5、MaxScanRows详解

与Excel注册表参数雷同,MaxScanRows=19(16进制)表示从前25行进行扫描猜测该字段的数据类型。

在不修改注册表的情况下,可通过以下连接字符串实现(VB代码):

strConn = ""
strConn = strConn & "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFolder & ";"
strConn = strConn & "Extended Properties="
strConn = strConn & Chr(34)
strConn = strConn & "text;CharacterSet=UNICODE;HDR=Yes;FMT=Delimited;IMEX=1;MaxScanRows=0;"
strConn = strConn & Chr(34) Set cn = New ADODB.Connection
With cn
.Provider = "Microsoft.Jet.OLEDB.4.0" ' this line is redundant, but it helps you read the code
.ConnectionString = strConn
.Properties("Jet OLEDB:Registry Path") = "SOFTWARE\TacticalApps\MyApp\1.0"
.Mode = adModeRead
.Open
End With

腾信集团(www.sms1086.com)欢迎您的光临~~~

通过oledb驱动读取excel、csv数据丢失解决方案的更多相关文章

  1. 基于.NET的程序读取Excel文件的解决方案

    目录 0. 前言 1. 使用NPOI库读取Excel文件 2. 使用OleDbConnection 3. 相关参考 shanzm-2020年12月8日 23:48:11 0. 前言 以前基于 .NET ...

  2. 数据处理之以OLEDB方式读取Excel数据丢失的原因及解决方法

    1.引言 在应用程序的设计中,经常需要读取Excel数据或将Excel数据导入转换到其他数据载体中,C#读取Excel的方式有两种,一种是通过OLEDB方式读取,另一种为通过COM组件方式读取.近段时 ...

  3. 使用OLEDB方式 读取excel和csv文件

    /// <summary> /// 使用OLEDB读取excel和csv文件 /// </summary> /// <param name="path" ...

  4. oledb方式读取excel文件

    进入博客园后台发现12年11月份写的草稿没发,时隔1年,把它拉出来晒晒太阳. 前言 第一次做Excel文件导入,采用了oledb,不足之处,还请各位大牛指出,谨以此文对导入Excel做个总结. 一般步 ...

  5. C# oleDb方法读取Excel文件

    今天学习的是从FTP上下载Excel文件,DataTable接收数据之后,在DataTable中通过筛选,删减修改之后把数据插入到DB相应表中. 优点:读取方式简单.读取速度快 缺点:除了读取过程不太 ...

  6. C#使用OLEDB方式读取EXCEL,表的结构

    var tables = con.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, new object[] { }); Ta ...

  7. truncate at 255 characters with xlsx files(OLEDB方式读取Excel丢失数据、字符串截断的原因和解决方法)

    The TypeGuessRows setting is supported by ACE. Note the version numbers in the key may change depend ...

  8. 用OLEDB读取EXCEL时,单元格内容长度超过255被截断

    https://support.microsoft.com/zh-cn/help/189897/data-truncated-to-255-characters-with-excel-odbc-dri ...

  9. 使用OLEDB读取excel和csv文件

    这是我第一次在博客上写东西,简单的为大家分享一个oledb读取文件的功能吧,这两天在做一个文件导入数据库的小demo,就想着导入前先在页面上展示一下,之前调用Microsoft.Office.Inte ...

随机推荐

  1. 怎样简单的制作一个CHM格式的帮助文档?

    http://jingyan.baidu.com/article/d8072ac446eb7bec95cefd0e.html 怎么制作CHM格式电子书 http://jingyan.baidu.com ...

  2. AutoMapper使用说明

    1.引用命名空间 using AutoMapper;using AutoMapper.Mappers; 2.实体类和dto public class Order { public int orderi ...

  3. iOS开发中视图控制器ViewControllers之间的数据传递

    iOS开发中视图控制器ViewControllers之间的数据传递 这里我们用一个demo来说明ios是如何在视图控制器之间传递重要的参数的.本文先从手写UI来讨论,在下一篇文章中讨论在storybo ...

  4. AJAX异步加载

    AJAX含义: 即"Asynchronous Javascript And XML"(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术. AJAX可以跨 ...

  5. 【动态规划】Gym - 101102A - Coins

    Hasan and Bahosain want to buy a new video game, they want to share the expenses. Hasan has a set of ...

  6. PHP根据设备类型自动跳转相应网址页面,这个现在实用

    现在移动设备上网也很方便,比如Android智能手机,iPhone/iPad等,很多网站都相继推出了针对电脑和这些手机等移动设备访问的网页,如果你的系统是用PHP写的,那面本代码对你会很实用,可根据这 ...

  7. DDD设计一个电商网站

    DDD设计一个电商网站(十一)-- 最后的准备    阅读目录 前言 准备 实现 结语 一.前言 最近实在太忙,上周停更了一周.按流程一步一步走到现在,到达了整个下单流程的最后一公里--结算页的处理. ...

  8. 基于jquery 封装的 select 小控件,解决 IE6 7 8里 select 边框 高度 无法遮挡等问题

    一.基本原理 select控件在浏览器中是个永远的痛,不同的版本解析出来的可谓五花八门.主要有以下问题: 1,IE6中无法设置高度,Z INDEX永远在最上,无法被其它层遮挡 2,IE7中可以设置高度 ...

  9. php常用图片处理类

    <?php /** * 已知问题:1.在图片缩放功能中,使用imagecreatetruecolor函数创建画布,并使用透明处理算法,但PNG格式的图片无法透明.用imagecreate函数创建 ...

  10. 在web前端使用SVG

    前言: 花了些时间了解了一下svg,然而仍然不怎么了解... 第一步:直接在html代码中使用svg. 首先了解几个标签: <svg version="1.1" xmlns= ...