数据库
首页 > 数据库> > Navicat | SQLyog 导入excel2007文件,text类型的字段超出255个字符的内容被截取

Navicat | SQLyog 导入excel2007文件,text类型的字段超出255个字符的内容被截取

作者:互联网

一、问题

Navicat | SQLyog,导入excel2007文件时,text类型的字段超出255个字符的内容被截取了;

二、问题原因

1、初步认为是mysql 超出了text类型的最大长度,显然不是;

2、导入时,读取excel数据被限制为255;

导入时读取excel各行的各字段时,电脑系统默认利用前8行(表头的首行除外)的数据类型判断导入字段的数据格式或者数据长度;

如前8行出现整数型,整列的后续字段默认就会用整数型的数据读取方式导入数据;

如前8行的最长长度是小于255的字符串类型,整列的后续字段默认都是小于255的字符串长度读取并导入数据;

如前8行的最长长度是大于255的字符串类型,整列的后续字段默认都是大于255[<=最长长度]的字符串长度读取并导入数据;

查看导入的excel文件,被截取列的前8行的最长长度确实小于255个字符,被截取的原因get了;

三、解决问题

1)方法一

暂时修改前8行中某一行[表后的首行除外]的数据,使其数据长度大于excel文件中导入列的最大长度,这样整列的后续字段便会按照最大长度为限制长度,可确保该列所有数据都可导入成功。

注意:

1、导入成功后,将如上修改的某行的数据更新为正确的数据即可;

2、此方法只适合截取列较少的excel导入;

2)方法二(百度的方法,自己尝试未成功)

*修改注册表:以64位系统为例
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Jet\4.0\Engines\Excel\TypeGuessRows

默认值为8[即如上提到的前8行],将值修改为0[0代表排查所有行的数据],重启电脑

*将值修改为0,自己电脑并未成功,转念一想由8行修改为50行,是不是会排查前5行的数据,然而并未成功,此方法放弃使用

3)方法三(最后使用的方法)

导入excel数据有限制,将excel转换为csv格式,导入csv文件;

excel转换为csv格式具体步骤见

 

标签:SQLyog,text,截取,excel,excel2007,导入,长度,数据,255
来源: https://blog.csdn.net/u010865136/article/details/99960900