C++Builder
  Начало   Форум   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Компонент JvgExportExcel выдает ошибку!  (Прочитано 1590 раз)
Onic777
Участник


Сказали спасибо: +0/-0
Offline

Сообщений: 8


Компонент JvgExportExcel выдает ошибку!
« : 28 Январь 2015, 14:07:52 »

Всем привет!
Срочно нужна помощь!!!

Стоит задача вывести определенный DataSet в Excel!!!
После долгих поисков и пыток всяких компонентов, например F1Book, и OLE нашел компонент, который выполняет экспорт в Excel в пакете JEDI!!!

Написал функцию, которая выполняет экспорт:
Код
[color=blue]
void __fastcall TFMain::SaveDataToXLS (TZQuery *TDS)
{
   sSaveDialog1->Filter          = "Write As Microsoft Excel File (*.xls)";
   sSaveDialog1->DefaultExt   = "xls";
   sSaveDialog1->FilterIndex   = 1;
   if (sSaveDialog1->Execute())
   {
       JvgExportExcel1->DataSet = TDS;
       JvgExportExcel1->SaveToFileName = sSaveDialog1->FileName;
       JvgExportExcel1->Execute();
   }
}
//---------------------------------------------------------------------------
[/color]
 

Вызывающая функция выглядит так:
Код
void __fastcall TFMain::sSpeedButton11Click(TObject *Sender)
{
   SaveDataToXLS(qSSS);
}
 

При работающей программе и открытой базе после нажатия на кнопку выдается сообщение отладчика

"Debugger Exception Notification:
Project AAA.exe reised exception class EOleSysError with message "Operation not Accessible". Process Stopped. Use Step or Run to continue"


Жмем RUN!
Загружается Excel, в нем появляется выводимая база без каких либо видимых ошибок, а программа продолжает работать в нормальном режиме...

Что это за ошибка и как ее исправить? Ну или исключить появление сообщения!

С Уважением,
Onic777
Записан
gen
Участник


Сказали спасибо: +28/-0
Offline

Сообщений: 52


Re: Компонент JvgExportExcel выдает ошибку!
« Ответ #1 : 30 Январь 2015, 09:40:36 »

Проверил.
Код
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Query1->Open();
 
SaveDataToXLS (Query1);
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::SaveDataToXLS (TOraQuery *TDS)
{
SaveDialog1->Filter       = "Write As Microsoft Excel File (*.xls)";
SaveDialog1->DefaultExt   = "xls";
SaveDialog1->FilterIndex  = 1;
if (SaveDialog1->Execute())
{
JvgExportExcel1->DataSet = TDS;
JvgExportExcel1->SaveToFileName = SaveDialog1->FileName;
JvgExportExcel1->ExcelVisible=true;
JvgExportExcel1->Execute();
}
}
 

Все работает, только у меня Оракловские компоненты (TOraQuery).  Проверял на Buider XE ,  Office2003  и OfficeXP, ошибок не выбрасывает. Но скорость выгрузки  - ниже плинтуса (самописной процедурой через OLE будет быстрее)
Записан
Onic777
Участник


Сказали спасибо: +0/-0
Offline

Сообщений: 8


Re: Компонент JvgExportExcel выдает ошибку!
« Ответ #2 : 30 Январь 2015, 10:14:48 »

Привет!
Спасибо за ответ!

Я тоже обнаружил нечто интересное:
Если проект скомпилирован и Борланд не загружен - ошибки не выдаются...!!!

Но пока остановился на этом решении!
Те варианты, которые я пробовал через ОЛЕ у меня не пошли! ОЛЕ конфликтовали с остальной могучей программой...
Нет ли у тебя рабочего фрагмента "самописной процедуры через OLE", ну или ссылки?

Onic777
Записан
gen
Участник


Сказали спасибо: +28/-0
Offline

Сообщений: 52


« Ответ #3 : 30 Январь 2015, 13:37:47 »

Конкретные процедуры из рабочих проектов очень объемные и там разобраться не просто. Лучше  приложу архив с несколькими статьями о работе с Excel (были когда-то на старом форуме). Также рекомендую глянуть на библиотеку экспорта http://alexxx-malev.narod.ru/AlxExportLib.html - очень удобно, когда без обширного кода нужно выгрузить из DBGrid (причем поддерживает и формат OpenOffice)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  




....

Powered by SMF 1.1.21 | SMF © 2025, Simple Machines
Страница сгенерирована за 0.062 секунд. Запросов: 21.