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格式具体步骤见 excel文件转换为csv格式文件及乱码的处理

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值