【问题标题】:Reading last Row in Excel while importing - SQL Database导入时读取 Excel 中的最后一行 - SQL 数据库
【发布时间】:2013-05-20 09:45:29
【问题描述】:

我有以下代码将 Excel 数据导入表并更新一些参数,但是我无法读取所有行,只读取最后一行,我希望能够读取所有行并更新它们在表中的值

DECLARE c CURSOR FOR select  Barcode,MSISDN,POS,[SIM Card Number],[Date of Sale] FROM
OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel     12.0;Database=C:\ActivatedCards.xlsx;HDR=YES', 'SELECT Barcode,MSISDN,POS,[SIM Card     Number],[Date of Sale] FROM [sheet1$]')
declare @Barcode as bigint
declare @MSISDN as bigint
declare @POS as nvarchar(50)
declare @SIMCardNb as bigint
declare @ActivatedDate as date

begin

open c 

fetch next from c into @Barcode,@MSISDN,@POS,@SIMCardNb,@ActivatedDate


WHILE @@FETCH_STATUS = 0
begin
select @Barcode=Barcode,@MSISDN=MSISDN,@POS=POS,@SIMCardNb=[SIM Card     Number],@ActivatedDate=[Date of Sale] FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel  12.0;Database=C:\ActivatedCards.xlsx;HDR=YES', 'SELECT Barcode,MSISDN,POS,[SIM Card  Number],[Date of Sale] FROM [sheet1$]')
where Barcode <> ''

Update Cards 
set 
MSISDN=@MSISDN ,
POSSold=@POS,
Activated=1,
SIMCardNb=@SIMCardNb,
ActivatedDate=@ActivatedDate,
ImportDate=GETDATE(),
CollectionDeadlineDate=DateAdd(Day,30,ImportDate)
where Cards.BarCode=@Barcode


fetch next from c into @Barcode,@MSISDN,@POS,@SIMCardNb,@ActivatedDate
end 


CLOSE c
DEALLOCATE c

【问题讨论】:

    标签: sql database excel import


    【解决方案1】:

    使用 NPOI api 读取/写入 xls、doc、ppt 文件。 microsoft Microsoft.ACE.OLEDB.12.0' 内置 api 不适用于此任务。

    可以在下面找到易于使用且非常高效的示例。

    http://npoi.codeplex.com/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-02-27
      • 2015-02-13
      • 1970-01-01
      • 1970-01-01
      • 2018-04-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多