当前位置: 首页 > 图文教程 > 数据库 > MSSQL > 格式导致的Excel导入sql出现异常的解决方法

MSSQL
MS SQL SERVER2005 XML 最佳实践
SQL Server对文件进行全文检索的查询
教你构建SQL Server可管理安全机制
维护SQL Server的交易日志经验总结
SQL SERVER 2005 EXPRESS不能远程连接的问题
SQL Server与Oracle并行访问本质区别
SQL Server数据库优化其索引的小技巧
分析及解决SQLServer死锁问题
用SQL Server为Web浏览器提供图像
SQL Server SQL Agent服务使用小结
SQL Server 存储过程的分页方案比拼
SQL Server数据库中存储引擎深入探讨
四招解决SQL Server对上亿表的排序和join的问题
SQL Server数据库管理员必须掌握的DBCC命令
如何将sql数据库的文件备份到本地?
如何解决Sybase数据库乱码问题详解
SQL Server:SQLServer中最小函数依赖集
小编谈Transact-SQL中的一些命名规范
谈SQL编写规范
浅谈SQL命名与注释规范

MSSQL 中的 格式导致的Excel导入sql出现异常的解决方法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 72 ::
收藏到网摘: n/a

因为Excel导入到sql的事儿,今天折腾了大半天。

本来程序是正常运行的,有时候会因为用户的excel文档没有按要求的格式来做,才会出现一些异常情况。本以为这次也是一样,后来拿到数据一看,并没有发现什么异常,而且自己又照着做了一些数据,竟然也会出现异常,只好怀疑是自己的程序有问题了。
常言说的好,最难找的是最后一个错误,这话确实不错。我几乎动用了我所掌握的各种手段,程序上真的没办法找出有啥问题了。在一个问题上折腾久了,浪费时间不说,还容易让自己的情绪低落。到后来,还是转去怀疑用户的数据有问题,无意中做了一下格式调整,竟然发现异常不见了。
Excel的单元格格式设置十分丰富,数据一旦被格式化,那你所看到可能已经不是庐山真面目了。比如货币格式,数据本身只是一串数字,并不会包含货币符号。
在我这个程序中,有一列数据为编码,可能是字母和数字的混合,也可能是纯数字,正常情况下,应该设置成文本格式,可能因为纯数字在这种情况下会有一个错误提示,也就是在单元格旁边出现了一个黄色的感叹号,用户大概觉得不对,就设置成了邮政编码这种特殊格式,数据看起来没啥变化,但程序在识别的时候就出现了异常。还有一个字段是月份,程序要求在一位数前补0,如果格式设置为数字,前面的0就没有了,所以必须设置为文本。如果自定义为:00,虽然在excel下显示的数字和想要的一样,但程序在处理时会当成一个数字处理,结果也会不符合要求。
总结一下,对于要导入到数据库的excel数据,不要做格式化处理,保持原始的字符或数字格式是最明智的选择。