Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
1 / 1 / 1
Регистрация: 07.11.2012
Сообщений: 32

Comobj Excel проблема при компиляции проекта

28.01.2020, 20:56. Показов 2981. Ответов 4

Студворк — интернет-сервис помощи студентам
Евенинг, появилась задача работы с Excel, нашел тему, что можно открывать эксель по средствам Ole используя Comobj и уже работать непосредственно в эксель в фоновом режиме. Нашел пример кода на просторах интернета, но что-то компилироваться не хочет с ошибкой:
Code
1
2
[bcc32c Error] Unit1.cpp(15): non-const lvalue reference to type 'System::AutoCmd' cannot bind to a temporary of type 'System::PropertyGet'
  sysvari.h(748): passing argument to parameter 'cmd' here
Непосредственно код, который используется для старта:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include <Comobj.hpp>
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner): TForm(Owner){}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Variant Ap, Bs;
Ap=CreateOleObject("Excel.Application");
Bs = Ap.Exec(PropertyGet("Workbooks"));
Bs.Exec(Function("Open")<< L"C:\\Burk.xlsx");
Ap.Exec(PropertyGet("Visible")<<true);
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.01.2020, 20:56
Ответы с готовыми решениями:

Delphi XE зависает при компиляции проекта (при включенном WiFi)
Помогите разобраться в данной проблеме. На Win7 x64 установлен Delphi XE, компиляция проектов, работа exe-шников проходит нормально, НО это...

Ошибка при компиляции проекта
Всем привет, ребят кто может глянуть проект, ошибка при компиляции, никак не пойму в чем дело, саму ошибку кинуть не могу, сейчас на роботе...

Ошибка при компиляции проекта
Всем доброго дня.. Какая-то странность с XE3 Если запускать проект по F9 или по Ctrl+F9 то даже пустое приложение вылетает с такой...

4
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
28.01.2020, 21:16
Цитата Сообщение от paulstufff Посмотреть сообщение
Ap.Exec(PropertyGet("Visible")<<true);
Попробуй так
C++
1
Ap.OlePropertySet("Visible", true);
0
Модератор
 Аватар для D1973
9921 / 6457 / 2457
Регистрация: 21.01.2014
Сообщений: 27,399
Записей в блоге: 3
29.01.2020, 13:32
Цитата Сообщение от paulstufff Посмотреть сообщение
Нашел пример кода на просторах интернета
Лучше вот это изучите...
0
 Аватар для TrollHammer
1216 / 709 / 336
Регистрация: 22.02.2018
Сообщений: 2,095
Записей в блоге: 2
29.01.2020, 14:05

Не по теме:

Цитата Сообщение от D1973 Посмотреть сообщение
Лучше вот это изучите...
Это точно!



Добавлено через 12 минут
И вообще, заморочки с OLE - вчерашний день.
1. Привязка конкретно к мелкомягкому офису, а вдруг конечный пользователь пользует Либру или что-то другое
2. Крайне неудобно, типы строковых данных WideString и прочее мракобесие
3. Еще много чего ограничительного
По моему (сугубо моему) мнению, лучше использовать библиотеки, которые формируют в памяти файл, например xls или doc/odt формата, потом сохранять на диск и и после открывать средствами ОС через ассоциацию с установленным ПО. Я для генерации отчетов в формате Excel использую TMS FlexCell Trial из репозитария GetIt для 10.3 Rio. Генерация отчетов любой сложности в несколько строчек кода. А еще, насколько я помню, для работы с документами MS Office в билдере есть вкладка Office Servers (или примерно так), где есть VCL-компоненты, которые работают с Word/Excel/etc без всяких танцев с бубнами и маракасами.

Добавлено через 1 минуту

Не по теме:

Использую OLE только для подключения к ядру ГИС MapInfo - там по-другому никак.

0
Модератор
 Аватар для D1973
9921 / 6457 / 2457
Регистрация: 21.01.2014
Сообщений: 27,399
Записей в блоге: 3
29.01.2020, 16:08
Цитата Сообщение от TrollHammer Посмотреть сообщение
компоненты, которые работают с Word/Excel/etc без всяких танцев с бубнами
Не-e, я бы так не сказал, шаманства там не меньше... И уж эти компоненты прямо гвоздями прибиты конкретно к MS Office, тогда как через OLE вполне можно работать с тем же OpenOffice - т.е. OLE прибит только к Windows...
А вообще, да, есть компоненты, и даже, вроде, бесплатные, которые позволяют формировать те же файлы формата Excel вообще без наличия МС Офис... Но лично с ними не работал...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.01.2020, 16:08
Помогаю со студенческими работами здесь

Ошибки при компиляции проекта
#include &lt;vcl.h&gt; #pragma hdrstop #include &quot;Unit1.h&quot; //--------------------------------------------------------------------------- ...

Ошибка при компиляции проекта
Собственно загвоздка в строчке с комментарием. Ошибка: illegal use of floating point #include &lt;iostream&gt; double Fx(double x)...

Ошибка при компиляции проекта
program Project1; uses FMX.Forms, Unit1 in 'Unit1.pas' {Form1}, Unit2 in 'Unit2.pas' {Form2}, Unit3 in 'Unit3.pas'...

LNK2019 при компиляции проекта
MSVCRTD.lib(exe_winmain.obj) : error LNK2019: unresolved external symbol _WinMain@16 referenced in function &quot;int __cdecl invoke_main(void)&quot;...

Ошибка при компиляции проекта
Проект пробовал запускать в 7500 и 7501 выходит одна и та же ошибка проект похоже сделан на предыдущей версии, судя по этому как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru