Каков рекомендуемый способ нормализации данных при импорте из CSV / Excel в ASP.NET (MVC)? - PullRequest
2 голосов
/ 21 марта 2012

Я знаю, что существует тысяча вопросов, связанных с импортом данных, о переполнении стека, и, пожалуйста, примите мои извинения, если это где-то уже задавалось, но мне было интересно, кто-нибудь мог бы посоветовать какие-либо проверенные и проверенные решения для нормализации данных воимпорт из CSV / Excel в C # / ASP.NET MVC 3 +.

Я мог бы написать что-нибудь для работы, но подумал, есть ли какие-нибудь библиотеки с открытым исходным кодом или инструменты, которые могли бы помочь с этим.

Моя область интересов выглядит следующим образом:

При импорте данных мне иногда требуется нормализовать некоторые поля, упрощенный пример этого показан ниже:

My input может быть:

Name, JobTitle
==============
Nick, Manager
Dan,  Coder

Моя структура таблицы может быть

Name, JobTitleId
================
Nick, 1
Dan,  2

Если должность не существует, я быкак это должно быть создано в моей таблице JobTitles и идентификатор, который будет возвращен.Если он существует, я бы хотел сохранить этот идентификатор.

В суммари я задаю следующие вопросы:

  • Какой метод или подход я должен использовать для этого?
  • Существуют ли какие-либо коммерческие библиотеки с открытым исходным кодом, которые бы справились с этим - нет смысла заново изобретать колесо

1 Ответ

2 голосов
/ 21 марта 2012

Есть ли метод или подход, который я должен использовать для этого?
Самая простая техника, которую я могу придумать, - это не MVC: используйте SSIS! Вы можете использовать ASP.NET в качестве посредника, чтобы принять файл Excel и передать его в базу данных, если проблема безопасности. Есть много учебных пособий с использованием Excel Connection Manager. например, Импорт файла Excel . SSIS дает вам невероятную гибкость, которая может помочь вам нормализовать ваши данные.

Существуют ли какие-либо коммерческие библиотеки с открытым исходным кодом, которые справляются с этим - нет смысла заново изобретать колесо
Возможно, вы уже вложили средства в такие продукты Microsoft, как Visual Studio и SQL Server, поэтому вы можете использовать их в соответствии с вашими потребностями, чем пробовать продукты с открытым исходным кодом.

Вздох !!
Кроме того, если вы действительно хотите проверить инструменты, то я слышал, что люди рекомендуют эти (не использовали ни один из них):

  1. RelationalExcel но это не бесплатно.
  2. Библиотека ExpertXLS Excel для .NET - эта версия не бесплатна, но работает с ASP.NET.
  3. Этот блог кажется хорошей ссылкой на инструменты, которые он пробовал.

Другие альтернативы могут быть:

  1. Загрузите ваш Excel, используя .NET, в наборы данных и динамически генерируйте ваши SQL-запросы ИЛИ передавайте это SQL-серверу sp, который выполняет тяжелую работу
  2. Синтаксический анализ вашего Excel с использованием VBA, а затем использование его в качестве источника данных для ASP.NET
...