Хранимая процедура Selete First Row в файле Excel с помощью Openrowset - PullRequest
0 голосов
/ 17 августа 2011

Я экспортирую запрос mssql в файл excel, в котором в качестве заголовка указаны первые две строки. Первая строка (заголовок) - это одна ячейка, простирающаяся от A1: K1. Второй ряд (заголовок) имеет 11 ячеек и простирается от A2: K2. Я хотел бы иметь openrowset для изменения заголовка и второй openrowset для заполнения файла excel.

Это не работает:

    EXEC('INSERT INTO OPENROWSET(''' + @provider + ''',''' + @ExcelString + ''',''SELECT Top 1 * FROM [Sheet1$]'') 
SELECT Top 1 [Customer] FROM [ORDER SUMMERY] WHERE [Order #] = ''' + @OrderNumber + ''' AND (Status = ''C'' OR Status = ''I'')')

Это вторая часть, и она работает:

    EXEC('INSERT INTO OPENROWSET(''' + @provider + ''',''' + @ExcelString + ''',''SELECT * FROM [Sheet1$A3:K3]'') 
SELECT [ITEMNUMBER],[CustomerSKU],[ITEM_DESCRIPTION],[CASEPACK],[Total Qty],[Case Price],[CASEPACK]*[Total Qty],[Total Qty]*[Case Price],[Unit Price],[PreTicketInfo],[Quote #] FROM [ORDER SUMMERY] WHERE [Order #] = ''' + @OrderNumber + ''' AND (Status = ''C'' OR Status = ''I'')')

Спасибо!

1 Ответ

0 голосов
/ 17 августа 2011
EXEC('INSERT INTO OPENROWSET(''' + @provider + ''',''' + @ExcelString + ''',''SELECT Top 1 * FROM [Sheet1$A1]'')  
SELECT Top 1 [Customer] FROM [ORDER SUMMERY] WHERE [Order #] = ''' + @OrderNumber + ''' AND (Status = ''C'' OR Status = ''I'')')

Попробуй это. В Excel содержится значение объединенных ячеек в верхнем левом углу диапазона объединенных ячеек, поэтому объединенное заклинание, охватывающее A1: K1, будет программно называться ячейкой A1 при извлечении данных значения

...