Как мне импортировать сильно отформатированные данные из Excel в базу данных? - PullRequest
1 голос
/ 05 января 2009

Каков наилучший способ импорта сильно отформатированных данных из Excel на сервер SQL. По сути, у меня есть 250+ файлов Excel, которые были экспортированы из инструмента отчетности в формате, который предпочитают наши бизнес-пользователи. Это сторонний инструмент, который не может экспортировать данные в любом другом формате. Мне нужно ежемесячно «чистить» эти файлы и импортировать их в базу данных. Я хочу использовать SQL Server 2005

Форматы файлов выглядят так:

                                                         Report Name

                                                     Report Description

                                    MTH/DEC/2003 MTH/JAN/2004 MTH/FEB/2004 
                                    Data Type  Data Type    Data Type

Grouping 1                           1900         1700         2800

  Grouping 2                         1500         900          1300

    Detail                           300          500          1000

    Detail                           1100         200          200

    Detail                           100          200          100

Ответы [ 7 ]

1 голос
/ 05 января 2009

Лично я бы сделал это с помощью SSIS. Это может быть не тривиально, так как формат файла выглядит относительно сложным (но я подозреваю, что это может быть правдой, независимо от того, какой инструмент вы используете), но пока он остается согласованным, он будет работать быстро каждый месяц, а пакеты служб SSIS просты поставить под контроль источника. Поскольку SSIS является частью SQL Server, легко убедиться, что он есть на всех серверах. Главное, чтобы вы хорошо понимали, как этот формат связан с тем, как вы храните данные в базе данных. Это трудная часть, независимо от того, какой инструмент вы используете.

1 голос
/ 05 января 2009

вы могли бы написать простое приложение парсера. Есть много API, которые будут обрабатывать чтение файлов Excel.

Я написал один в Java, и это заняло всего день или два.

здесь это один API.

Удачи

РЕДАКТИРОВАТЬ: Забыл упомянуть, нам также понадобится SQL API, такие как JDBC . Опять же, мы используем JDBC для большинства наших приложений и отлично работает.

0 голосов
/ 05 января 2009

Для Java-приложений POI (http://poi.apache.org/) очень хорошо подходит для приложений интеграции с Excel.

0 голосов
/ 05 января 2009

Это может показаться немного упрощенным, но вы можете просто вывести данные в формате csv и выполнить некоторый анализ выходных данных для преобразования в операторы вставки для SQL.

0 голосов
/ 05 января 2009

Возможно, вы захотите взглянуть на процедуры и функции CLR в SQL Server. С помощью процедуры CLR вы можете выполнять всю очистку в приложении VB или C # .NET, но по-прежнему запускать задания из SQL Server, как любая другая хранимая процедура или UDF.

0 голосов
/ 05 января 2009

Я делал это раньше с perl и MYSQL. Я написал простой Perl-скрипт, который анализировал файл и выводил содержимое в файл .sql. Затем это можно сделать вручную или включить в скрипт perl, открыть MYSQL и использовать файл .sql.

0 голосов
/ 05 января 2009

Предполагая, что у вас есть Microsoft Excel, вы также можете использовать собственный открытый ActiveX-интерфейс Excel. Больше информации здесь:

http://msdn.microsoft.com/en-us/library/wss56bz7(VS.80).aspx

Вы можете использовать это во всем, что может использовать ActiveX (C ++, VB6, VB.NET и т. Д.), Чтобы также создавать парсер и следить за тем, что сказал Берек.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...