SQLServer 和Excel的问题

时间:2021-12-19 04:48:16
1/问题:
  a.我用SQLServer导入Excel文件时,竟然也出现了一个问题,有些字段明明有资料,但就是不显示。主要出现在字段里字符和数字混排的,就是一行数字,下一行可能是字符或字符数字混排的。  
  b.而我用Access导入该Excel文件,资料竟然全部导入,没有出现有些栏位内容不显示的问题。  
 
2/尝试:  
  a.我尝试把Excel里面的栏位全部设置成Text格式,但是情况没有改观。  
  b.我尝试把Excel里面的栏位的内容全部前面加一个单引号,这个可以解决问题。但每天都有几万笔这样的资料,并且每行就有35个栏位,不可能一个一个修改啊。
  做一个程式专门加单引号,每个栏位加一次,30000*35=1050000次加入操作,  速度很是慢啊。  
  c.用Access先导入Excel,然后再导出Excel文件,然后导入资料库,这也可以成功导入。但是客户没有安装Access,并且要中转,人家也不愿意。  

3/期待:  
  a.期待以前有碰到过这种情况的朋友或其他高人给出好的解决方法。
  b.我把源Excel文件先导入Access里面,然后又重Access里面把该表导出为Excel文件。我的源Excel文件和从Access里面导出的Excel文件对比了一下,发现Access里面导出的Excel文件在每个数字栏位中有加单引号。有没有什么快速的方法,让每个栏位都自动加单引号呢。

  

9 个解决方案

#1


試試用DTS來導導看,
把excel的欄位格式都設成文字

#2


我就是用的SQLServer的DTS向导啊

#3


在MsSQLServer里面选择导出向导里面,在specify table copy or query这个选项里面你可以制定你的导出规则(选择use a query to specify the data to transfer)

#4


在那个地方啊,我怎么没有看到呢?

#5


为了大家方便研究,我把该文件上传了一个Demo上去,大家可以下载测试。

http://www.dunzip.com/download/viewer.rar

价格栏没有,或者订单编号没有

#6


SELECT *
FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0',
'EXCEL 8.0;HDR=YES;IMEX=1;DATABASE=C:\test\Viewer.xls', [SHEET1$])

#7


SELECT *
FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0',
'EXCEL 8.0;HDR=YES;IMEX=1;DATABASE=D:\Viewer.xls', [Sheet1$])

--把Sheet1改为你的工作表名

--注意:执行这个SQL时,先关闭这个XLS文件。

#8


学习

#9


学习

#1


試試用DTS來導導看,
把excel的欄位格式都設成文字

#2


我就是用的SQLServer的DTS向导啊

#3


在MsSQLServer里面选择导出向导里面,在specify table copy or query这个选项里面你可以制定你的导出规则(选择use a query to specify the data to transfer)

#4


在那个地方啊,我怎么没有看到呢?

#5


为了大家方便研究,我把该文件上传了一个Demo上去,大家可以下载测试。

http://www.dunzip.com/download/viewer.rar

价格栏没有,或者订单编号没有

#6


SELECT *
FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0',
'EXCEL 8.0;HDR=YES;IMEX=1;DATABASE=C:\test\Viewer.xls', [SHEET1$])

#7


SELECT *
FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0',
'EXCEL 8.0;HDR=YES;IMEX=1;DATABASE=D:\Viewer.xls', [Sheet1$])

--把Sheet1改为你的工作表名

--注意:执行这个SQL时,先关闭这个XLS文件。

#8


学习

#9


学习