Excel不是关系型数据库,在导入到sql中时对于数值型,sql有时int型会处理成float,有时数字文本混排的列,sql会认为是数值型,导入的结果有的数据变成了null,但是用sql导出excel后不做改动,再导入却不会有错误,关键就是导出的excel文件中文本型的列每个单元上都有个绿色的小三角型,要把excel的数值型的列调成这个小绿三角型却是相当麻烦,可能我对excel用得不好.
现有一个变通办法可行,打开exel 文件,新增一空列,输入公式=""&B1 ,这时excel会认为是文本型,复制单元格,粘贴到下面所有单元格上,取一个列名完成.
还有以下方法:
1、选中数字单元格,设为文本,双击,对其它单元格逐一如上。
2、选中所有要转换成文本的数字单元格,点击“数据|分列……”菜单,选择分隔符号或固定宽度,点下一步,再点下一步,类型选“文本”,点完成,强制把此列转换文本类型。3、用Excel的text()函数。
方法二简便
赶紧用下面的sql语法看一下,
SELECT * FROM
OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="C:\temp1.xls";Extended Properties="Excel 5.0;HDR=Yes;";Persist Security Info=False')...Sheet1$