Excel数据被截断为 255 个字符

来源:互联网 发布:网络直播监督平台 编辑:程序博客网 时间:2024/05/22 15:25

数据被截断为 255 个字符与 Excel ODBC 驱动程序


症状

检索时使用 Microsoft Excel 97 ODBC 驱动程序的外部数据,具有超过 255 个字符的字段可能被截断为 255 个字符。

原因

您的数据可能被截断为 255 个字符,如果被截断的字段的前 8 个记录包含 255 个或更少的字符。Microsoft Excel ODBC 驱动程序默认情况下,扫描的前 8 行要确定的每个列中的数据类型的数据。

即使您可以更改 ODBC Microsoft Excel 设置对话框中的行扫描值高于 8 (但不是高于 16) 成此值是未使用由 Excel。Excel ODBC 驱动程序使用以下注册表项之一的 TypeGuessRows DWORD 值来确定多少要扫描的数据中的行:
  • Excel 97
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\3.5\Engines\Excel
  • Excel 2000 及更高版本
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel

解决方案

若要更改 Excel ODBC 驱动程序扫描硬盘以确定哪种类型的数据必须在表中的行数,更改 TypeGuessRows DWORD 值的设置。

注: 以下步骤仅在当源 Excel 文件以 Microsoft Excel 工作簿文件格式保存工作。如果在 Microsoft Excel 97 和 5.0/95 工作簿文件格式保存,则数据将始终被截断为 255 个字符。


若要更改 TypeGuessRows 值的设置,请按照下列步骤:
  1. 关闭任何正在运行的程序。
  2. 在开始菜单上单击运行。键入regedit ,然后单击确定。
  3. 在注册表编辑器中,展开以下项取决于您所运行的 Excel 版本:
    • Excel 97
      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\3.5\Engines\Excel
    • Excel 2000 及更高版本
      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel
  4. 选择 TypeGuessRows,然后在编辑菜单上单击修改。
  5. 在编辑 DWORD 值对话框中,单击在基数下的十进制。键入一个介于 0 和 16,含) 之间的数值数据。单击确定,然后退出注册表编辑器。
注意: 出于性能原因,将 TypeGuessRows 值设置为零 (0) 不建议如果 Excel 表格很大。当此值设置为零时,Microsoft Excel 将扫描表中,以确定每个列中的数据类型中的所有记录。


另注:

改注册表

如果是:Jet引擎.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel

如果是:ACE引擎.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\Access Connectivity Engine\Engines\Excel
然后找到 TypeGuessRows这个项.默认为8的.修改为0.


也可把最长的串放到第一行。