|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Ошибка при закрытии Excel из под Builder 6! |
|
C/C++ - Ошибка при закрытии Excel из под Builder 6!
|
Новый участник Сообщения: 10 |
Профиль | Отправить PM | Цитировать
День добрый, господа!
помогите решить следующую проблему: открываю через OLE лист эксэля с помошью команд AppX = Variant::CreateObject("Excel.Application"); AppX.OlePropertyGet("WorkBooks").OleProcedure("Open",XslFile.c_str()); ShX=AppX.OlePropertyGet("WorkSheets",3); всё нормально работает! считаваю и записываю данные, но при попытке сохранить и выйти их приложения AppX.OlePropertyGet("WorkBooks",1).OleProcedure("Save"); AppX.OlePropertyGet("WorkBooks").OleProcedure("Close"); AppX.OleProcedure("Quit"); вылезает ошибка IsBound() failed @ c:\bcb\emuvcl\ulilcls.h/4249 что примечательно, если не производить никаких операций с данными, а просто открыть и закрыть эксэль с помощью перечисленных команд, всё срабатывает без ошибок!!! Если кто знает, намекните хоть в чём проблема!!1 |
|
Отправлено: 18:13, 30-04-2008 |
Ветеран Сообщения: 3806
|
Профиль | Отправить PM | Цитировать Чисто гипотетически - а после Save ждать не надо?
|
Отправлено: 22:51, 30-04-2008 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 10
|
Профиль | Отправить PM | Цитировать так ведь ошибка появляется сразу, не давая выполнить ни одной комманды!
кстати, ошибка одинаковая на каждой строке, если другие отулючить! |
Отправлено: 10:00, 02-05-2008 | #3 |
Старожил Сообщения: 181
|
Профиль | Отправить PM | Цитировать Ошибка возникает при компиляции, я так понимаю?
Приведи побольше кода. Особенно считывание и запись данных. |
Отправлено: 11:36, 03-05-2008 | #4 |
Новый участник Сообщения: 10
|
Профиль | Отправить PM | Цитировать нет, компиляция проходит нормально! без ошибок!
ошибка возникает при вызове процедур для закрытия и сохранения экселевского до-та! открытие файла: void __fastcall TForm1::ExcelOpenXSL(AnsiString XslFile) { if (XslFile!="") {AppX = Variant::CreateObject("Excel.Application"); AppX.OlePropertyGet("WorkBooks").OleProcedure("Open",XslFile.c_str()); ShX=AppX.OlePropertyGet("WorkSheets",3); } else { ShowMessage("Не заполнено поле Служебка(xls)!"); } if(!AppX.IsEmpty())AppX.OlePropertySet("Visible",true); запись данных: void __fastcall TForm1::toExcelCell(int Row,int Column, AnsiString data, Variant Sh) { try { Variant cur = Sh.OlePropertyGet("Cells", Row,Column); cur.OlePropertySet("Value", data.c_str()); } catch(...) { ; } чтение данных: Variant __fastcall TForm1::fromExcelCell(int Row, int Column, Variant Sh) { Variant result,cur; cur = Sh.OlePropertyGet("Cells",Row,Column); result = cur.OlePropertyGet("Value"); return result; } |
|
Последний раз редактировалось SGKorotkow, 04-05-2008 в 17:08. Отправлено: 16:23, 04-05-2008 | #5 |
Ветеран Сообщения: 1180
|
Профиль | Отправить PM | Цитировать у меня с экселем была какая-то проблема, она решалась просто: AppX->Release(); А вообще я советую сначала отладить на скрипте:
|
Отправлено: 07:13, 05-05-2008 | #6 |
Старожил Сообщения: 181
|
Профиль | Отправить PM | Цитировать 1. Откуда у тебя взялся этот файл c:\bcb\emuvcl\ulilcls.h? В моем BCB6 его нет, и папки emuvcl нет.
2. Твой код у меня работате нормально. 3. try/catch, думаю, лишнее. Давай больше кода. |
Отправлено: 01:15, 06-05-2008 | #7 |
Новый участник Сообщения: 10
|
Профиль | Отправить PM | Цитировать не знаю почему система выдаёт этот адрес, на самом деле адрес следующий:
\Program Files\Borland\CBuilder6\Include\Vcl\ulilcls.h Спасибо большое "Alexej77" и "pva"! Я понял как исправить ошибку, но вот почему так я не понял! Дело в том, что я получаю 3 страницу: ShX=AppX.OlePropertyGet("WorkSheets",3); А сохранять и закрывать нужно 1 (книгу)??? AppX.OlePropertyGet("WorkBooks",1).OleProcedure("Save"); AppX.OlePropertyGet("WorkBooks",1).OleProcedure("Сlose"); да был и ещё один косячок, но это моя ошибка!!! Ещё раз большое спасибо! |
Отправлено: 10:06, 06-05-2008 | #8 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Интерфейс - Анимация Aero при открытии/закрытии окон | fergard | Microsoft Windows 7 | 21 | 10-01-2010 01:23 | |
Драйвер принтера не выгружается при закрытии терминального сеанса | Delph1Ct | Microsoft Windows NT/2000/2003 | 2 | 25-05-2009 17:17 | |
Ошибка - [решено] IE7 - Ошибка приложения при закрытии вкладки | JJKey | Microsoft Windows 2000/XP | 4 | 14-05-2008 14:13 | |
Разное - [решено] Ошибки при закрытии программ | interminable | Microsoft Windows Vista | 3 | 27-09-2007 16:59 | |
Виснет IE при закрытии одного окна | deus | Microsoft Windows 95/98/Me (архив) | 2 | 14-08-2002 07:39 |
|