AnsiString File = "....";
App.OlePropertyGet("Workbooks").OleFunction("Open", File.c_str());
Выгрузка в Excel
Пишу:
//сначала открываю Excel
//теперь открываю шаблон
App.OlePropertyGet("WorkBooks").OleProcedure("Open",File);
В переменной File хранится имя шаблона.
Пишу:
//сначала открываю Excel
//теперь открываю шаблон
App.OlePropertyGet("WorkBooks").OleProcedure("Open",File);
В переменной File хранится имя шаблона.[/QUOTE]
А если так:
Код:
Теперь знаешь.... :). А в чем проблема то?
Написала так и все сразу заработало!
Сама не понимаю, в чем проблема, просто если шаблона нет, то он новый создает нормально без вызова .c_str(), а вот чтобы открыть шаблон, надо так написать...
Прямо мистика какая-то.
Теперь буду знать, а то прямо голову сломала, ничего понять не могла
Скорее всего проблема в том, что COMы ничего не знают об AnsiString и потому не любят....
Есть смысл для строковых параметров использовать либо char* либо wchar_t*, функция StringToOleStr может помочь....
Ну и использовать Variant::OleFunction для функций, а Variant::OleProcedure для процедур, если путать, то тоже могут быть чудеса...
Удачи, коллега! :)