Переход к вариантам взаимодействия VSTO / Excel

В настоящее время мы имеем электронную таблицу Excel, содержащую большое количество кода VBA. Код VBA отвечает за:

  • Манипулирование, преобразование и форматирование данных листа.
  • Выполнение вызовов функций C # и C ++ COM. При этом сортировка данных листа в методах C # / C ++, получение результатов и обновление листа с результатами.

Также как и другой код утилиты.

Теперь мы хотим добавить новый лист в нашу книгу Excel, и нам не нужен VBA. Мы хотим использовать C #. Как я вижу, у меня есть следующие варианты:

  • Перенесите весь проект в VSTO вручную, перекодировав VBA как C # в проект VSTO.
  • Напишите функциональность нового листа в C # и выставьте его через COM. Код C # будет использовать Excel PIA для обновления листа. Листу понадобится очень тонкий слой VBA для сортировки данных с помощью методов C #.

Я не думаю, что ManagedXLL поможет мне в этом, так как мои требования к коду также важны для обработки данных листа, поскольку они касаются обновления листа с результатами.

Пожалуйста, прокомментируйте / попросите более подробную информацию.

Благодарю.

Ты забыл:

  • Перенесите весь проект в VSTO, портируя существующий код на VB.Net (некоторые из них будут просто копировать / вставлять) и писать новый код на C #.
  • Поместите новый лист в отдельную книгу и зайдите в старую книгу как источник данных.

посмотрите, хотите ли вы мой совет … с точки зрения разработки это может занять немного больше времени, но … используете ли вы VB.Net или C # такой подход.

  1. делайте подобное, как конверсия. для нетривиальных сумм VBA с минимальной без документации это поможет вам понять иногда сублимированные подходы к логике и анализу данных.

  2. изменить все экземпляры ячеек на итерацию ячеек и цикл для однократного ввода типа «один-одинок» для чтения-листа. это WILL включает повторную запись разделов кода. прочитайте все реквизиты и ценности в начале метода и напишите все те, которые вы хотите вернуться в конце.

  3. Обеспечьте, чтобы вся обработка данных и логических данных была выполнена IN .net с использованием типов данных .net, не используйте свойства объектов диапазона или свойств листа непосредственно внутри цикла, это просто путь к дорогостоящим.

  4. наконец, убедитесь, что если вы используете несколько потоков, вы делаете все «материал Excel» в основном потоке.

  5. Прочтите SO за множеством советов по правильной утилизации COM-объектов. остерегайтесь ложных схем удаления.

  • Microsoft.Office.Tools.Excel.ApplicationFactory.GetVstoObject вызывает утечку памяти VBA?
  • Excel дважды щелкните по кнопке ленты, чтобы начать макрос
  • Как я могу определить (и изменить), будет ли шрифт, используемый в диаграммах в Excel и PowerPoint, следовать стилю или был указан пользователем?
  • В надстройке C # на уровне приложения Excel установите источник данных без мастера
  • VSTO Отображение выбранной ссылки ячейки в текстовом поле
  • Копирование диапазона ячеек из excel в powerpoint с использованием VSTO
  • Как создавать имена в excel, используя собственный список значений
  • Можно ли вызвать подпрограмму надстройки VSTO из VBA
  • Неправильная работа async / wait, события Excel в приложении уровня приложения Excel
  • VSTO: Как можно надстроить надстройку Excel, когда пользователь удаляет таблицу или именованный диапазон?
  • Как обновить приложение Excel Workbook 2007 от .xls до .xlsx?
  • Interesting Posts

    Excel: сумма Всего : mm форматированный столбец

    условное среднее значение в excel

    Как найти и использовать определенную ячейку

    Скопируйте определенные данные из одной книги и вставьте ее в другую книгу (вставьте из второй строки)

    Импорт и привязка к электронным таблицам Excel

    Excel: дата возврата из числа дней

    Запишите «имя ячейки» в качестве результата оператора IF в Excel

    Excel 2010: вложенный оператор IF

    Ошибка несоответствия типа VBA Ms Excel

    Как изменить формат даты в Excel?

    Получение «ошибки времени выполнения» 380: Не удалось установить свойство Value. Недопустимое значение свойства. "При присвоении значения свойству combobox 'value'

    Имейте макрос для цикла, нужно дросселировать и переходить только к следующему i при нажатии новой кнопки

    Перенос базы данных на новый сервер, когда в Excel есть много ссылок

    VBA – Оценить возвращение #VALUE

    Открытие удаленного файла Excel через WebDAV без полной поддержки WebDAV

    Давайте будем гением компьютера.