Excel обработка данных с VSTO? - PullRequest
1 голос
/ 27 ноября 2010

Я обнаружил, что у меня есть электронная таблица Excel, содержащая около 3000 строк данных, которые представляют собой либо дополнения, либо изменения данных, которые мне нужно внести в таблицу SQL.Как вы можете себе представить, это слишком много, чтобы справиться вручную.По ряду не зависящих от меня причин я не могу просто использовать пакет служб SSIS или другой более простой метод для внесения этих изменений в базу данных.Единственный вариант, который у меня есть, - это создание сценариев SQL, которые будут вносить изменения, представленные в электронной таблице, в MS SQL 2005.

У меня нет абсолютно никакого опыта в автоматизации Office или VSTO.Я пытался смотреть в Интернете, но большинство увиденных мной руководств меня немного смущает.

Итак, я подумал, что я бы использовал .NET и VSTO для итерации по рядам данных.(или используйте LINQ, в зависимости от того, что имеет смысл) и определите, является ли данный элемент вставкой или элементом обновления.На листе есть цветное выделение, чтобы показать дельту, поэтому я полагаю, что я мог бы использовать это, или я мог бы искать некоторые ключевые данные, чтобы установить, существует ли запись.Как только я установлю, с чем имею дело, я могу вызвать методы, которые генерируют оператор SQL, который будет либо вставлять, либо обновлять данные.Вставки были бы чрезвычайно простыми, и я мог бы использовать дельта-подсветку, чтобы определить, какие поля нужно обновить для элементов обновления.

Я бы согласился либо с выводом SQL в файл, либо даже с добавлением тестаSQL для данной строки в последней ячейке этой строки.

Любое направление к какому-либо образцу кода, примерам, инструкциям или тому, что приведет меня в правильном направлении, будет наиболее ценно.Я не требователенЕсли есть какой-то инструмент, о котором я не знаю, или способ использования существующего инструмента, о котором я не задумывался для выполнения основной задачи генерации SQL для выполнения этой задачи, то я полностью за него.

Если вам нужна любая другая информация, не стесняйтесь спрашивать.

Приветствия,

Стив

1 Ответ

3 голосов
/ 27 ноября 2010

Предлагаю перед тем, как попробовать VSTO, постарайтесь разобраться, как решить эту проблему с помощью Excel VBA. ИМХО, это самый простой способ изучения объектной модели Excel, особенно потому, что у вас есть рекордер макросов. Вы можете повторно использовать эти знания позже, когда вы решите переключиться на C #, VSTO или Automation или (лучше!) Excel DNA .

Для Excel VBA существует множество учебных пособий, вот одно:

http://www.excel -vba.com / excel-vba-contents.htm

Если вам нужно знать, как выполнять произвольные команды SQL, такие как INSERT или UPDATE, в программе VBA, загляните в этот пост SO:

Excel VBA для SQL Server без служб SSIS

Вот еще один пост SO, показывающий, как получить данные с сервера SQL в электронную таблицу Excel:

Доступ к базе данных SQL в Excel-VBA

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