日期:2014-05-17  浏览次数:20511 次

SQL2000或者2005从本地读取Excel文件,其中一列读取不完整,该怎么解决?
本该读取出的Excel文件的一列数据有140个字段,但是读取上来之后只显示了13个半多的字段...
Office版本是2007

select * from OPENROWSET('MICROSOFT.ACE.OLEDB.12.0','Excel 12.0 Xml;Database=(本地文件路径)','select * from [(文件名,此处后缀名省略)$]')
例:
select * from OPENROWSET('MICROSOFT.ACE.OLEDB.12.0','Excel 12.0 Xml;Database=e:\2013-03-01_Mean.xlsx','select * from [2013-03-01_Mean$]')
SQL Excel 数据库 SQLSERVER

------解决方案--------------------
引用:
.


Create table TTT(col nvarchar(max))
go

BULK INSERT test_hl..TTT 
FROM 'D:\aaa.xlsx' 
WITH ( 
datafiletype='char',
FIELDTERMINATOR = ';',
ROWTERMINATOR = ';' 



select * from TTT

truncate table TTT

------解决方案--------------------
引用:
--第一次查询也出现楼主说的情况,第二次就好了,真是奇怪。
--楼主可尝试选择:把结果保存到文件,试试
--楼主可尝试前面加个INSERT INTO一张表,试试
CREATE TABLE #TEMP(AA NVARCHAR(max))
INSERT #temp
SELECT * 
FROM OPENROWSET
(
    'Microsoft.ACE.OLEDB.12.0', 
    'Excel 12.0;HDR=Yes;IMEX=1;Database=D:\aaa.xlsx',
    'select * from [Sheet1$]'
)
*/

纠正一下:第一次测试也正常。由于我是用文本显示结果,而文本显示的默认值是每列256个字符,所以当时还以为是丢数据了,其实只是没显示出来而已!