去除EXCEL中的回车换行符引起的系列问题解决方法
今天同事问我说excel 中有特殊字符,在widows记事本中显示为小黑方块,在网上找了一下,我个人比较懒还是放到库里去处理一下好了,这个过程中发现了一系列的新问题,下面一一例出与解决,我提倡动用手头比较方便的各种软件
1,查看特殊字符是什么
我用oracle库里的dump函数,看了一个ascii码表为,char(10)
然后把excel 导入到本机刚好安装的sqlserver里处理
2,导入时提示 数据对于所指定缓冲区太大
无论是先建表批定varchar(4000)还是批定text都一样报这个错误,原因excel那个列的值是够长但绝不足500字
网上一查是excel 默认的Jet 引擎 为以前8列的类型决定数据类型
修改注册表
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel 把TypeGuessRows值改为0,重启操作系统或结束exporer进程,没有桌面别慌,同时按ctrl+shift+esc调出任务管理器,新建任务 exporer,导入数据可以了
替换特殊字符吧
update tablename set colname =replace( colname,char(10),”)
3,修改时提示replace 的参数 1 的数据类型 ntext 无效。
查看当前字段类型为text类型,replace不可用,要转换后替换
update tablename set colname =replace(cast( colname as varchar(8000),char(10),”)
导出发现还有特殊符,再一想,可能还有换行回车符,再次替换
update tablename set colname =replace(cast( colname as varchar(8000),char(13),”)
再次导出 为excel,发现乱码没了
上一篇: 全球IP未来几周将用完
目前这篇文章有5条评论(Rss)评论关闭。