本该读取出的Excel文件的一列数据有140个字段,但是读取上来之后只显示了13个半多的字段...
Office版本是2007select * 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$]')
SQLExcel数据库SQLSERVER

解决方案 »

  1.   

    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$]')去掉红色的部分试试看。 
    简单的数据,应该是不带xml的。 
      

  2.   

    更多信息参考 http://blog.csdn.net/orchidcat/article/details/7480680
      

  3.   

    --#1.用下面的设置试试
    SELECT * 
    FROM OPENROWSET
    (
    'Microsoft.ACE.OLEDB.12.0', 
    'Excel 12.0;HDR=Yes;IMEX=1;Database=e:\2013-03-01_Mean.xlsx',
    'select * from [2013-03-01_Mean$]'
    )
    --#2.如果还不行,把xlsx转换成xls试试
    --#3.你要保证,Sheet中的第一行是列名,且120个列都有列名,或有值
      

  4.   


    换成了xls还是不行,我这是除列名外一行一列的数据,不是多列的。字段是用分号隔开的。
      

  5.   

    TimeStamp;Ctrl.Availability[%];Ctrl.CpuUsage[%];Ctrl.RealtimeUsage[%];Ctrl.PlcUsageSTD[%];Ctrl.PlcUsageCOM[%];Ctrl.RouterMemory[%];Ctrl.PowerDerating[%];SAFETY.EL6900_Temp1[癩;SAFETY.EL6900_Temp2[癩;Pitch.SyncErr[癩;Pitch.FollowErr[癩;Pitch.Angle[癩;Pitch.AngleA1[癩;Pitch.AngleA2[癩;Pitch.AngleA3[癩;Pitch.MotorTempA1;Pitch.MotorTempA2;Pitch.MotorTempA3;Pitch.MotorTorqA1;Pitch.MotorTorqA2;Pitch.MotorTorqA3;Pitch.BattTempA1[癈];Pitch.BattTempA2[癈];Pitch.BattTempA3[癈];Pitch.CabTempA1[癈];Pitch.CabTempA2[癈];Pitch.CabTempA3[癈];Pitch.HubTemp[癈];Rotor.Speed[rpm];Rotor.TipSpeedRatio;Rotor.SpeedBold[rpm];Rotor.SpeedSSI[rpm];Gear.BearTempDE[癈];Gear.BearTempNDE[癈];Gear.ExtHeaterTemp[癈];Gear.LubOilPressInlet[bar];Gear.LubOilTempInlet[癈];Gear.LubOilTempSumpDS[癈];Gear.LubOilTempSumpNDS[癈];Gear.LubOilTempSump[癈];Gear.LubOilCoolUtilize[%];Gear.Speed[rpm];RotBrake.PadsTemp1[癈];RotBrake.PadsTemp2[癈];RotBrake.PadsTemp3[癈];RotBrake.PadsTemp4[癈];RotBrake.DiskTemp[癈];WinDr.SpeedInput[rpm];WinDr.SpeedInputEnc[rpm];WinDr.BearingTempB12[癈];WinDr.BearingTempB7[癈];WinDr.BearingTempB8[癈];WinDr.BearLubPressInlet[bar];WinDr.BearLubTempInlet[癈];WinDr.HydPressure[bar];WinDr.LubOilPressInlet[bar];WinDr.LubOilSumpHeatTemp[癈];WinDr.LubOilTempInlet[癈];WinDr.LubOilTempSump[癈];WinDr.LubOilCoolUtilize[%];WinDr.WorkOilPressInlet[bar];WinDr.WorkOilSumpHeatTemp[癈];WinDr.WorkOilTempInlet[癈];WinDr.WorkOilTempSump[癈];WinDr.WorkOilCoolUtilize[%];WCU.P_REF;WCU.ActivePower;CMS.SetPointGuideVane;CMS.CurrPosGuideVane;CMS.ActivePowerGen[kW];CMS.GeneratorSpeed[rpm];CMS.InputSpeed[rpm];CMS.SampleRate[Hz];CMS.Vrms[];CMS.MeshingFreq[Amp] ;CMS.MeshingFreq[Hz];Gen.ReactivePower[kVAr];Gen.ActivePower[kW];Gen.Speed[rpm];Gen.ApparentPower[kVA];Gen.BearingTempDE[癈];Gen.BearingTempNDE[癈];Gen.InsideTemp[癈];Gen.OutsideTemp[癈];Gen.StatorTempU[癈];Gen.StatorTempV[癈];Gen.StatorTempW[癈];Gen.StatorTemp[癈];Gen.StatorCoolUtilize[%];Gen.PMG_Temp[癈];Grid.DeratingFactor[%];Grid.DeratingPower[kW];Grid.SetValueAtDerating[kW];GenCab.AVR_FSlip[];GenCab.AVR_Pgen[kW];GenCab.AVR_PFRef[PF];GenCab.AVR_Vref[%];GenCab.TempTop[癈];GenCab.TempBottom[癈];Grid.CurrentL123[A];Grid.CurrentL1[A];Grid.CurrentL2[A];Grid.CurrentL3[A];Grid.ActivePower[kW];Grid.ReactivePower[kVAr];Grid.ActivePowerDyn[kW];Grid.Freq[Hz];Grid.PowerFactor[%];Grid.VoltageL123[V];Grid.VoltageL12[V];Grid.VoltageL23[V];Grid.VoltageL31[V];Grid.AuxVoltage[V];Grid.AuxPower[kW];Grid_AuxPowerCalc[kW];Grid_AuxReactivePower[kVAr];Yaw.CableTwistTotal;Yaw.NacellePosLtd[癩;Yaw.BrakePressure[bar];Hyd.OilSumpTemp[癈];Hyd.SystemPressure;Meteo.WindSpeed[m/s];Meteo.WindSpeedAdapt[m/s];Meteo.WindSpeed1[m/s];Meteo.WindSpeed2[m/s];Meteo.WindDir[癩;Meteo.VaneDir[癩;Meteo.Vane1Rel[癩;Meteo.Vane2Rel[癩;Meteo.OutsideTemp[癈];Opt.AirPressure[hPa];Nac.Temp[癈];Nac.CableTemp[癈];Nac.LoopTemp[癈];NacCab.Temp[癈];Tow.CableTemp[癈];Tow.Temp[癈];TowCab.Temp[癈];Sub.TrafoOilTemp1[癈];Sub.TrafoOilTemp2[癈];Sub.TrafoLosses[癈];
    这是我那一列里所有的数据,但是取出来之后只有:TimeStamp;Ctrl.Availability[%];Ctrl.CpuUsage[%];Ctrl.RealtimeUsage[%];Ctrl.PlcUsageSTD[%];Ctrl.PlcUsageCOM[%];Ctrl.RouterMemory[%];Ctrl.PowerDerating[%];SAFETY.EL6900_Temp1[癩;SAFETY.EL6900_Temp2[癩;Pitch.SyncErr[癩;Pitch.FollowErr[癩;Pitch.Angle[癩;Pitch.Angl
      

  6.   


    换成了xls还是不行,我这是除列名外一行一列的数据,不是多列的。字段是用分号隔开的。
    就是这个问题了 字段是用分号隔开
    这个可以使用excel转一下, excel 中,数据——自文本——分隔符号(选择)——分号(选择)——完成。
    这样处理好的数据就是分好列的了。 再使用上面的方法openrowset即可。 
      

  7.   


    换成了xls还是不行,我这是除列名外一行一列的数据,不是多列的。字段是用分号隔开的。
    就是这个问题了 字段是用分号隔开
    这个可以使用excel转一下, excel 中,数据——自文本——分隔符号(选择)——分号(选择)——完成。
    这样处理好的数据就是分好列的了。 再使用上面的方法openrowset即可。 
    但是我不是将文件进行手动操作的,这些文件我是要从服务器取出来之后转存入数据库中的,所以在其中无法对文件进行手动操作。
      

  8.   


    换成了xls还是不行,我这是除列名外一行一列的数据,不是多列的。字段是用分号隔开的。
    就是这个问题了 字段是用分号隔开
    这个可以使用excel转一下, excel 中,数据——自文本——分隔符号(选择)——分号(选择)——完成。
    这样处理好的数据就是分好列的了。 再使用上面的方法openrowset即可。 
    但是我不是将文件进行手动操作的,这些文件我是要从服务器取出来之后转存入数据库中的,所以在其中无法对文件进行手动操作。对应你这个情况,应该使用bcp  其中-t参数可以设置为分号。 这样就可以导入数据了。 
    openrowset 并不适用于lz的情况。 
      

  9.   


    换成了xls还是不行,我这是除列名外一行一列的数据,不是多列的。字段是用分号隔开的。
    就是这个问题了 字段是用分号隔开
    这个可以使用excel转一下, excel 中,数据——自文本——分隔符号(选择)——分号(选择)——完成。
    这样处理好的数据就是分好列的了。 再使用上面的方法openrowset即可。 
    但是我不是将文件进行手动操作的,这些文件我是要从服务器取出来之后转存入数据库中的,所以在其中无法对文件进行手动操作。对应你这个情况,应该使用bcp  其中-t参数可以设置为分号。 这样就可以导入数据了。 
    openrowset 并不适用于lz的情况。 
    求详细代码...
      

  10.   

    --第一次查询也出现楼主说的情况,第二次就好了,真是奇怪。
    --楼主可尝试选择:把结果保存到文件,试试
    --楼主可尝试前面加个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$]'
    )SELECT * FROM #temp
    /*
    TimeStamp;Ctrl.Availability[%];Ctrl.CpuUsage[%];Ctrl.RealtimeUsage[%];Ctrl.PlcUsageSTD[%];Ctrl.PlcUsageCOM[%];Ctrl.RouterMemory[%];Ctrl.PowerDerating[%];SAFETY.EL6900_Temp1[癩;SAFETY.EL6900_Temp2[癩;Pitch.SyncErr[癩;Pitch.FollowErr[癩;Pitch.Angle[癩;Pitch.AngleA1[癩;Pitch.AngleA2[癩;Pitch.AngleA3[癩;Pitch.MotorTempA1;Pitch.MotorTempA2;Pitch.MotorTempA3;Pitch.MotorTorqA1;Pitch.MotorTorqA2;Pitch.MotorTorqA3;Pitch.BattTempA1[癈];Pitch.BattTempA2[癈];Pitch.BattTempA3[癈];Pitch.CabTempA1[癈];Pitch.CabTempA2[癈];Pitch.CabTempA3[癈];Pitch.HubTemp[癈];Rotor.Speed[rpm];Rotor.TipSpeedRatio;Rotor.SpeedBold[rpm];Rotor.SpeedSSI[rpm];Gear.BearTempDE[癈];Gear.BearTempNDE[癈];Gear.ExtHeaterTemp[癈];Gear.LubOilPressInlet[bar];Gear.LubOilTempInlet[癈];Gear.LubOilTempSumpDS[癈];Gear.LubOilTempSumpNDS[癈];Gear.LubOilTempSump[癈];Gear.LubOilCoolUtilize[%];Gear.Speed[rpm];RotBrake.PadsTemp1[癈];RotBrake.PadsTemp2[癈];RotBrake.PadsTemp3[癈];RotBrake.PadsTemp4[癈];RotBrake.DiskTemp[癈];WinDr.SpeedInput[rpm];WinDr.SpeedInputEnc[rpm];WinDr.BearingTempB12[癈];WinDr.BearingTempB7[癈];WinDr.BearingTempB8[癈];WinDr.BearLubPressInlet[bar];WinDr.BearLubTempInlet[癈];WinDr.HydPressure[bar];WinDr.LubOilPressInlet[bar];WinDr.LubOilSumpHeatTemp[癈];WinDr.LubOilTempInlet[癈];WinDr.LubOilTempSump[癈];WinDr.LubOilCoolUtilize[%];WinDr.WorkOilPressInlet[bar];WinDr.WorkOilSumpHeatTemp[癈];WinDr.WorkOilTempInlet[癈];WinDr.WorkOilTempSump[癈];WinDr.WorkOilCoolUtilize[%];WCU.P_REF;WCU.ActivePower;CMS.SetPointGuideVane;CMS.CurrPosGuideVane;CMS.ActivePowerGen[kW];CMS.GeneratorSpeed[rpm];CMS.InputSpeed[rpm];CMS.SampleRate[Hz];CMS.Vrms[];CMS.MeshingFreq[Amp] ;CMS.MeshingFreq[Hz];Gen.ReactivePower[kVAr];Gen.ActivePower[kW];Gen.Speed[rpm];Gen.ApparentPower[kVA];Gen.BearingTempDE[癈];Gen.BearingTempNDE[癈];Gen.InsideTemp[癈];Gen.OutsideTemp[癈];Gen.StatorTempU[癈];Gen.StatorTempV[癈];Gen.StatorTempW[癈];Gen.StatorTemp[癈];Gen.StatorCoolUtilize[%];Gen.PMG_Temp[癈];Grid.DeratingFactor[%];Grid.DeratingPower[kW];Grid.SetValueAtDerating[kW];GenCab.AVR_FSlip[];GenCab.AVR_Pgen[kW];GenCab.AVR_PFRef[PF];GenCab.AVR_Vref[%];GenCab.TempTop[癈];GenCab.TempBottom[癈];Grid.CurrentL123[A];Grid.CurrentL1[A];Grid.CurrentL2[A];Grid.CurrentL3[A];Grid.ActivePower[kW];Grid.ReactivePower[kVAr];Grid.ActivePowerDyn[kW];Grid.Freq[Hz];Grid.PowerFactor[%];Grid.VoltageL123[V];Grid.VoltageL12[V];Grid.VoltageL23[V];Grid.VoltageL31[V];Grid.AuxVoltage[V];Grid.AuxPower[kW];Grid_AuxPowerCalc[kW];Grid_AuxReactivePower[kVAr];Yaw.CableTwistTotal;Yaw.NacellePosLtd[癩;Yaw.BrakePressure[bar];Hyd.OilSumpTemp[癈];Hyd.SystemPressure;Meteo.WindSpeed[m/s];Meteo.WindSpeedAdapt[m/s];Meteo.WindSpeed1[m/s];Meteo.WindSpeed2[m/s];Meteo.WindDir[癩;Meteo.VaneDir[癩;Meteo.Vane1Rel[癩;Meteo.Vane2Rel[癩;Meteo.OutsideTemp[癈];Opt.AirPressure[hPa];Nac.Temp[癈];Nac.CableTemp[癈];Nac.LoopTemp[癈];NacCab.Temp[癈];Tow.CableTemp[癈];Tow.Temp[癈];TowCab.Temp[癈];Sub.TrafoOilTemp1[癈];Sub.TrafoOilTemp2[癈];Sub.TrafoLosses[癈];
    */
      

  11.   

    Create table TTT(col nvarchar(max))
    goBULK INSERT test_hl..TTT 
    FROM 'D:\aaa.xlsx' 
    WITH ( 
    datafiletype='char',
    FIELDTERMINATOR = ';',
    ROWTERMINATOR = ';' 

    select * from TTTtruncate table TTT