Хрупкость использования библиотеки объектов Excel в Visual Basic - PullRequest
3 голосов
/ 15 февраля 2011

Немного предисловия: этот проект, хотя технически домашнее задание, полностью находится под контролем моей команды из 5 человек. Мы придумали проект, определили масштаб и осуществили полный творческий контроль. Так что это не традиционная домашняя работа, это эквивалент старшего проекта.

Один из выводов системы, которую я разрабатываю, должен быть очень похож на хорошо отформатированную электронную таблицу Excel. Мы могли бы создать (или найти) графическую библиотеку и обрабатывать печать в нашем собственном коде ... но в конечном итоге мы чувствуем, что файл электронной таблицы Excel будет более переносимым. Пользователь может открыть его в Excel, отредактировать, отправить по электронной почте и т. Д.

Программный доступ к Excel кажется достаточно простым (т. Е. http://support.microsoft.com/kb/302094)

Но мой вопрос: что происходит, когда выходит «Office 2013», а пользователь удаляет Office 2010 и устанавливает 2013?

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

Я буду использовать невероятно основные функции API. Пока я могу читать и писать в диапазоне ячеек и настраивать внутренний цвет ячеек, мой код будет работать.

В общем, как я могу сделать так, чтобы мой код VB.Net имел доступ к API Microsoft Excel, доступному в целевой системе? (Включая будущие API-интерфейсы Excel.)

1 Ответ

1 голос
/ 05 октября 2012

Я рекомендую сначала разработать с использованием Excel PIA (первичные сборки взаимодействия), чтобы получить автозаполнение и интерактивную справку в Visual Studio.

Как только ваша программа будет завершена, я рекомендую перейти на позднюю привязку перед публикацией,Ваш EXE работает с различными версиями Excel.

  1. Сначала разрабатывайте с использованием текущей PIA Excel, пока она не будет работать так, как вы хотите (Google "Excel PIA" для загрузки сборок)
  2. Когда вашПрограмма завершена, добавьте Option Strict Off в начало модулей, которые используют объекты Excel
  3. Замените все классы Excel PIA на Object напримерDim xls As Excel.ApplicationстановитсяDim xls As Object
  4. Заменитьxls = New Excel.Applicationсxls = CreateObject("Excel.Application")
  5. Удалить ссылку на Excel PIA и привести в порядок
...