C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Затык C++Builder6 + Excel, Связь Builder6 и Excel
Gadzila
  Отправлено: 02.06.2003, 11:16


Ученик-кочегар

Группа: Участник
Сообщений: 21



Необходимо документы выводить в Word-е и Excel-е.
Решил воспользоваться компонентами WordApplication и ExcelApplication.

Tmp = "c:\\nal\\Podatkova.dot";
Chang = wdDoNotSaveChanges;
Frmt = Unassigned;
RtDcmnt = Unassigned;

WordApplication1->Connect();
WordApplication1->Documents->Add(&Tmp, EmptyParam);
// Вставка в документ необходимых данных
WordApplication1->ActiveDocument->PrintOut();

try // ловим ошибки при закрытии
{
WordApplication1->ActiveDocument->Close(Chang,Frmt,RtDcmnt);
}
catch (Exception &exception)
{
Application->ShowException(&exception);
WordApplication1->ActiveDocument->Close(Chang,Frmt,RtDcmnt);
}

WordApplication1->Quit(Chang,Frmt,RtDcmnt); // Реакция на FormDestroy
WordApplication1->Disconnect();

Тут все отрабатывает без сучка и задоринки, однако после закрытия приложения
Word начинает задавать глупые вопросы: сохранять ли документ? И так столько раз,
сколько документов создавалось!

Что касается Excel:
ExcelApp->Connect();
XLTemplateFile = "C:\\nal\\reestr.xls";
ExcelApp->Workbooks->Add(&XLTemplateFile); // ??????????????????????
// Затык совсем нелепый — не могу разобраться какие параметры передавать в функцию Add?! wink.gif wink.gif sad.gif
Anry
Отправлено: 06.06.2003, 15:39


Дежурный стрелочник

Группа: Участник
Сообщений: 56



Я бы тебе посоветовал работать не с этими компонентами, а при помощи объекта типа Variant. Список основных функций работы с Excel кажется есть в каком-то FAQ.
pasha
Отправлено: 06.06.2003, 19:46


Дежурный стрелочник

Группа: Участник
Сообщений: 62



По-поводу

QUOTE
Тут все отрабатывает без сучка и задоринки, однако после закрытия приложения
Word начинает задавать глупые вопросы: сохранять ли документ? И так столько раз,
сколько документов создавалось


Естественно, когда Вы изменяете документ Word (да и в любом другом
редакторе), и пытаетесь выйти, не сохранив документ,
редактор спрашивает Вас — сохранять изменения или нет.

Чтобы избежать этого вопроса, можете сами сохранять
все ваши документы перед закрытием:

WordApplication1->ActiveDocument->Save();

и тогда, при закрытии, вопроса сохранять или нет быть не должно:

...
WordApplication1->ActiveDocument->PrintOut();
WordApplication1->ActiveDocument->Save();

try // ловим ошибки при закрытии
{
...

---------------

Кстати, приведите пожалуйста более полный код работы с Word
(с описанием переменных)

Отредактировано pasha — 6 Jun 2003, 19:51

Вернуться в Вопросы программирования в C++Builder