Как экспортировать данные в таблицу Excel 2007 с помощью служб SSIS? - PullRequest
0 голосов
/ 12 октября 2010

У меня есть файл excel (xlsx), содержащий таблицу:

Excel Table

После того как я успешно запустил задачу ssis для вставки в нее данных, она фактически добавляется после таблицы:

Excel Table after the SSIS task

Мой ожидаемый результат:

Expected

Так что я ищу способ вставить в таблицу и дополнить ее данными. Я надеюсь, что кто-то может мне помочь.

Ответы [ 2 ]

1 голос
/ 18 октября 2010

Я наконец нашел ответ. Поэтому мне нужно было создавать отчеты Excel с большим количеством сводных диаграмм, связанных с основной таблицей.

Но использование таблицы было плохой идеей. Вместо этого сводные диаграммы должны быть связаны с именованным диапазоном.

Последнее, что нужно знать, это то, что появляется сообщение об ошибке «Недействительные ссылки», если указанный диапазон не использует функцию OFFSET.

Моя формула именованного диапазона:

=OFFSET(Sheet!$A$1, 0, 0, COUNTA(Sheet!$A:$A), NUMBER_OF_COLUMNS)

Где Sheet - это имя листа, а NUMBER_OF_COLUMNS - количество столбцов данных.

Вот и все. Теперь я могу генерировать отчет Excel без какой-либо строки кода, только используя SSIS 2005.

1 голос

Я бы не использовал SSIS для этого, вы можете иметь Excel2007 в качестве связанного сервера , помещать данные в Excel с помощью обычного TSQL или обрабатывать данные с помощью Excel VBA, получая данные непосредственно из SQL Server. Из практического здравомыслия я никогда бы не использовал SSIS для чего-либо

Ну, информации о том, как вы это делаете, не так много, но вы должны как-то указать, что первая строка не должна использоваться в качестве контейнера имен заголовков (HDR = NO), что-то вроде

  • вставить в OPENROWSET ('Microsoft.Jet.OLEDB.4.0',
    'Excel 8.0; База данных = D: \ testing.xls; ; HDR = NO '
    'SELECT * FROM [Sheet1 $]')
...