MSDN.WhiteKnight - Stack Overflow answers
Ответ на "Как подключиться из проекта VS C++/ CLI к Excel?"
Answer 941357
Для работы с Excel необходимо добавить ссылку на библиотеку типов "Microsoft Excel ... Object Library" (на вкладке COM в диалоге добавления ссылки):
Пример подключения к запущенному экземпляру Excel и изменения значения ячейки в активном листе выглядит так:
using namespace System; using namespace System::Runtime::InteropServices; using namespace Microsoft::Office::Interop::Excel; int main(array<System::String ^> ^args) { Application^ app = nullptr; Object^ sheet = nullptr; Worksheet^ ws = nullptr; Range ^ cells = nullptr; Range ^ cell = nullptr; try { //подключаемся к активному экземпляру Excel app = (Application^)Marshal::GetActiveObject("Excel.Application"); if (app == nullptr) throw gcnew ApplicationException("Fatal error: Running Excel instance not found!"); //находим активный лист sheet = app->ActiveSheet; if (sheet == nullptr) throw gcnew ApplicationException("Fatal error: No active sheet in Excel!"); ws = (Worksheet^)sheet; //переходим в ячейку и устанавливаем ее значение cells = ws->Cells; cell = (Range^)cells->Item[1, 1]; cell->Activate(); cell->Value2 = gcnew String("Hello from C++/CLI!"); } finally{ //очистка ресурсов if (cell != nullptr)Marshal::ReleaseComObject(cell); if (cells != nullptr)Marshal::ReleaseComObject(cells); if (ws != nullptr)Marshal::ReleaseComObject(ws); if (sheet != nullptr)Marshal::ReleaseComObject(sheet); if (app != nullptr)Marshal::ReleaseComObject(app); } Console::WriteLine("All done! Press any key to exit"); Console::ReadKey(); return 0; }
Content is retrieved from StackExchange API.
Auto-generated by ruso-archive tools.