Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 загрузка Excel файла произвольного формата  [new]
Bruin_Balu
Member

Откуда:
Сообщений: 112
Задача загрузить в базу данных Excel файл «произвольного» формата. Есть xml-файл содержащий название самого файла, название листа, имя базы и таблицы в которую необходимо загрузить данный файл, и мэппинг столбцов (названия столбцов файла и полей таблицы, типы данных). Структура самого xml-файла пока не определена, т.е. можно определить ее так чтобы "удобно" было пользоваться.

Подскажите пути реализации данной задачи? Может кто-нибудь уже делал для себя что-то подобное?

База находится на Microsoft SQL Server 2005 - 9.00.4035.00 (Intel X86) Nov 24 2008 13:01:59 Copyright (c) 1988-2005 Microsoft Corporation Standard Edition on Windows NT 5.2 (Build 3790: Service Pack 2)
17 сен 09, 14:53    [7673662]     Ответить | Цитировать Сообщить модератору
 Re: загрузка Excel файла произвольного формата  [new]
x3mka
Member

Откуда:
Сообщений: 30
Загрузите xml файл в переменную таким способом:
DECLARE @xml XML		

SELECT @xml = CONVERT(xml, BulkColumn, 2) FROM OPENROWSET(
   BULK 'C:\test.xml', SINGLE_BLOB
) AS x

SELECT @xml

Затем получите путь к Excel файлу, название листа и все остальное, что нужно из этого xml. См. функцию nodes().

А с данными из Excel файла можно работать так:

SELECT * FROM
OpenDataSource ('Microsoft.Jet.OLEDB.4.0','Data Source="c:\1.xls";
User ID=Admin;Password=;
Extended properties=Excel 8.0')...Sheet1$

Если у вас еще есть маппинг полей, то надо будет строить динамические запросы.
17 сен 09, 15:53    [7674247]     Ответить | Цитировать Сообщить модератору
 Re: загрузка Excel файла произвольного формата  [new]
Bruin_Balu
Member

Откуда:
Сообщений: 112
x3mka, огромное спасибо за ответ!

с xml работала, к записям обратиться могу.

Думала такой проектик сделать в script task в SSIS пакете, но там не знаю как обратиться к самой базе, как написать сам запрос... У меня сложность именно с тем чтобы сказать запросу какой столбец из файла в какой стобец базы вставлять, особенно если столбцы заданы номером по-порядку, а не именем
17 сен 09, 16:25    [7674539]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить