2009-11-09 1 views
0

Я ищу любые советы или ресурсы по импорту из excel в базу данных SQL, но конкретно, когда информация НЕ находится в формате столбцов и строк.Импорт из excel «приложений» с использованием SSIS

В настоящее время я выполняю некоторые предварительные разработки для проекта, и в большинстве случаев я хотел бы использовать SSIS для проекта. Одной областью, в которой мои исследования и поисковые запросы оставляют большой знак вопроса, является импорт листа excel.

В двух словах наши пользователи используют excel как простой калькулятор/приложение. Значения вводятся в конкретные ячейки на листе, а затем в других формулах клеток выходят окончательные ответы. Лист был «украшен», чтобы облегчить пользователям использование (т. Е. Пустое пространство, объединенные ячейки, красивые цвета и т. Д.). Мне нужен механизм, чтобы получить как исходные значения, так и окончательные ответы и импортировать их в базу данных SQL.

Существует тонна информации о испытаниях и трудностях импорта информации о столбцах и строках в Excel, но есть ли у каких-то коллег-переполнений опыт с этим? Для этого подходит SSIS (другим жизнеспособным вариантом должна быть интеграция в .NET-службу).

Спасибо!

ответ

2

А как насчет добавления листа в книгу, который вытаскивает ответы из листа расчета и показывает их в виде таблиц, а затем использовать магию SSIS для всасывания значений из этого нового листа?

Если вы не можете изменить рабочий лист, вы можете посмотреть службы Interop или что-то там, где вы можете указать точные ячейки, из которых вы хотите извлечь данные.

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

+0

мне было интересно об этом, но я не знаю, количество листов, мне нужно агрегировать (в зависимости от случая к случаю). У нас также нет времени в проекте, чтобы переписать лист :( Спасибо за мысли tho – Chris

+0

Как насчет написания макроса в книге Excel для агрегирования данных на скрытом листе, а затем с помощью SSIS для извлечения его из этого листа Макрос может быть достаточно умным, чтобы смотреть на все видимые листы или что-то в этом роде, если их число неизвестно. –

+0

На самом деле это может сработать - я мог бы искать запуск макроса при закрытии листа, чтобы обеспечить скрытый лист вверх на сегодняшний день. Спасибо! – Chris

0

Источник данных SSIS Excel использует рабочий лист или диапазон - думает таблица с именами столбцов. Вы также можете рассмотреть возможность использования VBA из Excel для ввода данных в вашу БД.

+0

Когда вы говорите VBA в excel, это то, что я могу автоматизировать из пакета SSIS?Документы excel будут существовать в репозитории SharePoint и по разным причинам не могут быть загружены в то время, когда пользователь хранит документ (если я не создал для них временное место хранения в БД) – Chris

+0

Я думал о том, чтобы передавать данные в БД через VBA пока пользователь вычисляет. Однако вы можете запускать почти что угодно из SSIS, используя «Выполнять задачу процесса». –

0

SpreadsheetGear for .NET позволит загружать книгу Excel, помещать значения в ячейки, вычислять, получать результаты как необработанные значения или форматированный текст и многое другое. Это может быть вашим лучшим вариантом, если данные не подходят для SSIS, но для автоматизации процесса вам потребуется использовать .NET (C#, VB или любой язык .NET). Преимущество SpreadsheetGear заключается в том, что у вас есть решение, которое не зависит от чего-либо, кроме .NET (конечно, это зависит от SpreadsheetGear, но SpreadsheetGear может быть развернуто без лицензионных платежей с вашим приложением, используя развертывание xcopy или любой другой метод развертывания).

Вы можете увидеть живые образцы here и скачать бесплатную пробную версию here.

Отказ от ответственности: У меня есть SpreadsheetGear ООО