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

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

28.01.2020, 20:56. Показов 2955. Ответов 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
9907 / 6444 / 2455
Регистрация: 21.01.2014
Сообщений: 27,354
Записей в блоге: 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
9907 / 6444 / 2455
Регистрация: 21.01.2014
Сообщений: 27,354
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru