Разработка Excel XLL с использованием Mac OS X/Linux

Я разрабатывал модели C++ с использованием Visual Studio в течение последних 5 лет и заворачивал их в Xll для использования с Excel (используя xlw). Надстройка Excel — это конечный продукт, который я хочу предоставить.

Тем не менее, я считаю, что кодирование на C++ намного лучше с использованием Linux или Mac OS X. Но я также считаю, что использование моих моделей с Excel через Xll также очень практично, но, к сожалению, работает только в Windows.

Поэтому я хотел бы знать, есть ли способ выполнить реализацию в Mac OS X (или Linux), создать надстройку Excel и использовать ее в Windows.

Единственный способ сделать это, о котором я сейчас думаю, - это написать код в Mac OS X, скомпилировать проект, не включая часть, касающуюся Xll, затем загрузить проект в Visual Studio и полностью скомпилировать его для создания надстройки Excel. в. Но, честно говоря, это звучит немного трудоемко, и я надеюсь на более простой способ.


person Chuck Morier    schedule 09.02.2012    source источник


Ответы (2)


Возможно. Вам просто нужно использовать mingw (http://mingw-w64.sourceforge.net/) для компиляции из Linux. Я должен отметить, что вы можете использовать g++ 4.7, который является очень приличным компилятором C++ с поддержкой C++ 11x. Кросс-компиляторы работают как в Mac, так и в Linux, и, поскольку это gcc, вы можете использовать их с вашей любимой экосистемой инструментов.

Есть несколько неожиданных причуд, но на всякий случай:

  • Не забудьте использовать -Wl,--add-stdcall-alias, чтобы экспортировать функции без подчеркивания в окончательной dll.
  • Вместо declspec(__declexport) используйте __attribute((dllexport)). Но вы также можете использовать более древний трюк .def, если хотите. В любом случае используйте инструменты Windows sdk «Depends.exe» или аналогичные, чтобы убедиться, что ваша dll правильно экспортирует имена.
  • Если вы используете виртуальную машину для тестирования или новую установку Excel, не забудьте установить все навороты, поставляемые с Office и Excel. В противном случае в Excel 2007 и Excel 2010 надстройки не будут работать, и вы ошибочно будете обвинять настройку сборки.

Кроме того, если вы готовы использовать http://kalx.net/xll/, что действительно может сделать ваш жизнь проще, вам придется обновить эту библиотеку для строгого соответствия C++.

С наилучшими пожеланиями.

person dsign    schedule 14.02.2012

Я разработал рабочий пример надстройки C++ Excel с использованием Mac OSX, Eclipse CDT и XCode, а также электронную таблицу, в которой используется надстройка. Объяснение находится здесь http://www.smr.co.uk/excel-addin-on-mac-os-x-using-cdt/, включая используемые версии и т. д., а код находится здесь https://github.com/PollardsEtFiles/MacCPPExcelAddinExample.

Есть две ошибки

  • Эксель 2011 32 бит.
  • Убедитесь, что надстройка находится в том же каталоге, что и таблица Excel.

clang (входит в состав Xcode) — хорошая замена g++

Все, что вам нужно сделать, это установить Eclipse CDT и импортировать код, который вам понадобится.

person Peter    schedule 31.07.2015
comment
это не надстройка XLL, а просто dylib. - person Malick; 01.04.2016