Как читать, редактировать и писать файлы xls, а затем экспортировать в SQL Server - PullRequest
1 голос
/ 02 ноября 2009

У меня есть файл Excel, содержащий список контактов (около 10 тыс. Из них), который мне нужно вставить в базу данных SQL Server. Итак, я пишу программу .net для Windows, используя Visual Studio 2008, чтобы читать файлы, генерировать случайный пароль для каждого контакта и затем помещать эту информацию в мою базу данных SQL Server.

В 2003 году было легко работать с файлом Excel, но теперь на моем компьютере установлен офис 2007, и, похоже, все изменилось. Я копаю в Microsoft.Office.Interop.Excel, но, похоже, все гораздо сложнее, чем раньше.

Ответы [ 3 ]

2 голосов
/ 02 ноября 2009

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

Если вам нужно сделать это в .net, вы можете открыть файл Excel через ODBC с помощью SQL ... Это немного хрупко, но я успешно использовал его в прошлом.

Используйте что-то подобное для строки подключения в Excel:
Поставщик = Microsoft.Jet.OLEDB.4.0; Источник данных = C: \ MyExcel.xls; Расширенные свойства = "Excel 8.0; HDR = Да; IMEX = 1";

Рабочий лист и именованный раздел являются именами таблиц. HDR = Да означает, что первая строка содержит имя полей. Я признаю, что это немного странно. :)

0 голосов
/ 02 ноября 2009

Я не уверен, поможет ли это вам, но, возможно, SSIS (SQL Server Integration Services) поможет вам.

Кроме того, вы можете попробовать записать макрос в Excel, выполняя желаемые манипуляции в Excel, а когда вы закончите с вашими манипуляциями, вы можете посмотреть на записанный макрос (ALT + F8) и «перевести» его в .NET код.

Просто предложение.

0 голосов
/ 02 ноября 2009

Я бы применил подход ETL к этому:

  1. Создание пакета служб SSIS для импорта данных в промежуточную таблицу в SQL Server
  2. Проверка и очистка всех импортированных данных
  3. Написать сценарий SQL для рандомизации паролей для каждой импортированной строки и вызвать этот сценарий / сохраненный процесс из пакета служб SSIS как задачу SQL
  4. Вставка в таблицу фактических данных из промежуточной таблицы

Если это нужно делать снова и снова, я бы сохранял пакет в SQL Server и вызывал его из моей программы на C #.

...