Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 08.11.2015
Сообщений: 70
RAD 2009-XE3

Простая БД на основе Excel файла

25.01.2026, 19:00. Показов 959. Ответов 14

Студворк — интернет-сервис помощи студентам
Нужен очень простой проект.
Дано:
форма, 3 едита, 2 кнопки, dbgrid, adoconnection, adoquery, datasource
первый едит - под фамилию(строка), второй под имя(строка), третий под возраст (целое число)
Кнопка добавить.
кнопка сохранить.
в dbgrid заданы 3 столбца с такими именами: "Имя", "Фамилия", "возраст" по умолчанию.

При нажатии на кнопку "Добавить" данные из едитов добавляются в dbgrid в соответствующие поля.
При нажатии на кнопку "сохранить" создается новый excel файл с данными внесенными в dbgrid и сохраняется в директории с прогой.

Пытался сам, но столкнулся с кучей вопросов, на которые не могу найти ответы:
1) Зачем в адоконекшене делать связь с уже готовым excel файлом? (я же создаю новую таблицу)
2) Пофиг - создал шаблонный пустой ексель файл, но при прописывании коннекта - появляется ошибка, что файл какого-то не стандартного формата, а при выборе его через интерфейс билдера увидел, что он такого формата вообще не видит. Только от acces-а базы мол туда можно только добавить


Буду благодарен за рабочий проект!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.01.2026, 19:00
Ответы с готовыми решениями:

Сохранение файла Excel, заполненного из не основного потока
Доброго всем времени суток, господа. Помогите решить следующею проблемку. Данный код, открывает...

Вызов подпрограммы из основной программы, с сохранением работоспособности основной программы?(подробно внутри)
Добрый день. Буду благодарен, если кто-нибудь подскажет как такое реализовать. Суть вопроса: ...

Как считать столбецы из Excel и на основе них построить диаграму?
Здравствуйте, дорогие форумчане. Вопрос такой - возможно ли или нет? Считать определенные столбцы...

14
Модератор
 Аватар для D1973
9929 / 6466 / 2457
Регистрация: 21.01.2014
Сообщений: 27,422
Записей в блоге: 3
25.01.2026, 20:00
Цитата Сообщение от Brakses Посмотреть сообщение
в dbgrid заданы 3 столбца
Цитата Сообщение от Brakses Посмотреть сообщение
данные из едитов добавляются в dbgrid
DBGrid не хранит никаких данных, он только ОТОБРАЖАЕТ какой-либо набор данных (НД).
А уж как формируется этот отображаемый НД - это вообще отдельная тема разговора.

Цитата Сообщение от Brakses Посмотреть сообщение
Зачем в адоконекшене делать связь с уже готовым excel файлом? (я же создаю новую таблицу)
Файл != Таблица
Цитата Сообщение от Brakses Посмотреть сообщение
Только от acces-а базы мол туда можно только добавить
У Вас на компьютере должен быть установлен ODBC-драйвер для работы с Excel через ADO.
1
0 / 0 / 0
Регистрация: 08.11.2015
Сообщений: 70
25.01.2026, 20:09  [ТС]
Спасибо. А есть ли демка для разбора? Или образец реализации похожей задачи?
0
 Аватар для Storm Screamer
4881 / 1448 / 116
Регистрация: 21.04.2013
Сообщений: 8,744
26.01.2026, 01:29
Цитата Сообщение от Brakses Посмотреть сообщение
Буду благодарен за рабочий проект!
Странные запросы. В чем смысл пользовать древнюю версию IDE RAD 2009-XE3? Очень сомневаюсь, что кто-то будет качать эту версию, чтобы собрать демонстрационный проект под вашу задачу.
0
Модератор
 Аватар для D1973
9929 / 6466 / 2457
Регистрация: 21.01.2014
Сообщений: 27,422
Записей в блоге: 3
26.01.2026, 07:50
Цитата Сообщение от Storm Screamer Посмотреть сообщение
В чем смысл пользовать древнюю версию IDE RAD 2009-XE3?
Смысла, ясное дело, не много, но обстоятельства разные бывают:
1. Просто неправильно выбран префикс темы при создании
2. Что стоит в учебном заведении - тем и пользуются.

в любом случае не плохо бы свою реальную версию озвучивать.

Цитата Сообщение от Brakses Посмотреть сообщение
А есть ли демка для разбора?
Встречный вопрос: а есть задание точное? Вот прямо так, как учитель выдал, а не Ваша интерпретация?
А "демок" подобных тут много - воспользуйтесь поиском по разделу.
1
0 / 0 / 0
Регистрация: 08.11.2015
Сообщений: 70
27.01.2026, 18:20  [ТС]
Спасибо за понимание. Хочу справиться, но врятли осилю. В пятницу уже просят сдать... А у меня только форма с компонентами. в dbgrid отображается таблица из файла и всё...=(

Версия ПО:
Embarcadero® RAD Studio XE Version 15.0.3953.35171

Вот так прислали в чат:
Проект: база учеников. Компоненты:Form, Adoconnection, Adoquery, dbgrid, datasource, tedit, tbutton. Специфика: работа с excell файлом.
Цель: заполнять таблицу внутри своего приложения, отображая данные в dbgrid по мере добавления новых строк в таблицу при клике на кнопку "Добавить". Данные берутся из Tedit. Сохранять заполненную таблицу в новый excel файл. Новый файл должен открыться в excel с заполненной таблицей при клике на кнопку "сохранить" в режиме для сохранения.
Поля известны: Фамилия, Имя, Возраст.

Если есть дэмка - подскажите где именно?
Я немного поковырялся. Смог подключить файл (драйвер французский какой-то поставил - заработало). Но добавлять данные не получается - вылезает ошибка на французском =) Не понимаю. Пробовал добавлять данные так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
Form1->ADOQuery1->Active = false;
        Form1->ADOQuery1->SQL->Text = "Select * From Лист1";
 
 
        Form1->ADOQuery1->Open();
        Form1->ADOQuery1->Active = true;
        Form1->ADOQuery1->Insert();
        Form1->ADOQuery1->Fields->FieldByNumber(2)->AsAnsiString= Form2->Edit1->Text;
        Form1->ADOQuery1->Fields->FieldByNumber(3)->AsAnsiString= Form2->Edit2->Text;
        Form1->ADOQuery1->Fields->FieldByNumber(4)->AsAnsiString= Form2->Edit3->Text;
 
        Form1->ADOQuery1->Post();
Выдает вот такую дичь:
[Microsoft][драйвер ODBC Excel] механизму базы данных Microsoft Office Access не удалось найти объект "Лист1". убедитесь, что объект существует и что вы правильно ввели его имя и путь.
Миниатюры
Простая БД на основе Excel файла  
0
Модератор
 Аватар для D1973
9929 / 6466 / 2457
Регистрация: 21.01.2014
Сообщений: 27,422
Записей в блоге: 3
28.01.2026, 07:21
К сожалению, я не могу понять сообщение на французском языке, но явно одно - у Вас проблема с провайдером: либо у Вас в системе вообще нет нужного провайдера (что странно при наличии пакета MS Office), либо выбран не тот провайдер в настройках компонента TADOConnection

Цитата Сообщение от Brakses Посмотреть сообщение
Сохранять заполненную таблицу в новый excel файл.
Чушь какая-то. Если у Вас лист Excell используется как таблица СУБД (спорный момент, при наличии того же офиса гораздо логичнее использовать Access, но пёс с ним...) - то данные там сохраняются сразу при добавлении. Или я чего-то не понимаю...

Цитата Сообщение от Brakses Посмотреть сообщение
Новый файл должен открыться в excel с заполненной таблицей при клике на кнопку "сохранить" в режиме для сохранения.
Вообще не понял.
1
 Аватар для volodin661
6795 / 2292 / 348
Регистрация: 10.12.2013
Сообщений: 7,918
28.01.2026, 07:26
Цитата Сообщение от Brakses Посмотреть сообщение
Новый файл должен открыться в excel с заполненной таблицей
excel у компании microsoft стоит ~ $200,
проси в деканате субсидию
1
Эксперт .NET
 Аватар для Rius
13233 / 7729 / 1680
Регистрация: 25.05.2015
Сообщений: 23,549
Записей в блоге: 14
28.01.2026, 07:33
Цитата Сообщение от D1973 Посмотреть сообщение
Чушь какая-то. Если у Вас лист Excell используется как таблица СУБД (спорный момент, при наличии того же офиса гораздо логичнее использовать Access, но пёс с ним...) - то данные там сохраняются сразу при добавлении. Или я чего-то не понимаю...
Контекст обучающего курса отсутствует, возможно.
У некоторых программ есть экспорт данных в файл и открытие сразу в соответствующем приложении.
База при этом сама может быть и не в Excel.
1
Модератор
 Аватар для D1973
9929 / 6466 / 2457
Регистрация: 21.01.2014
Сообщений: 27,422
Записей в блоге: 3
28.01.2026, 07:38
Цитата Сообщение от volodin661 Посмотреть сообщение
excel у компании microsoft стоит ~ $200
В свое время, помню, по какой-то госпрограмме, для учебных заведений прямо за копейки продавали лицензии на Windows XP и Office 2003. Вообще не удивлюсь, если где нибудь эти компы еще "в бою"

Добавлено через 1 минуту
Цитата Сообщение от Rius Посмотреть сообщение
Контекст обучающего курса отсутствует, возможно.
Да, скорее всего
1
0 / 0 / 0
Регистрация: 08.11.2015
Сообщений: 70
28.01.2026, 18:15  [ТС]
В общем мрак... Спасибо за то, что соучастны... Уже отчаяние переходит в пофигизм.... Ладно, хрен со стандартными методами. Может кто-то подскажет как реализовать это другим путем? Для упрощения понимания я создал шаблонный проект и прикрепил к этому сообщению. (себе установил новый rad studio - создавал в нём(Embarcadero® C++Builder 12 Version 29.0.50491.5718 )). Лазил и нашел в интернете библиотеку libxl (все, конечно же ломаное, хз как купить что-то если мы под санкциями, вложил дополнительной папкой в проект архива ucheniki)... Библиотеку я подключить не смог. lib в dll не переводится implib - пишет ошибка при открытии файла (просидел всю ночь, глаза в кучу. В полном отчаянии и вся надежда на доброго самаритянина. У меня срок - пятница ). Готов отблагодарить за пошаговое разъяснение (чтобы я смог повторить у себя)

Для того, чтобы упростить понимание - проиллюстрирую в виде картинок работу приложения (готов к любым методам - лишь бы запустилась и выполняла что просят)
Иллюстрация работы программы:
Миниатюры
Простая БД на основе Excel файла   Простая БД на основе Excel файла   Простая БД на основе Excel файла  

Вложения
Тип файла: rar ucheniki.rar (21.76 Мб, 3 просмотров)
0
42 / 45 / 6
Регистрация: 21.10.2022
Сообщений: 591
Записей в блоге: 2
29.01.2026, 00:02
может не нужна именно БД, а просто выгрузка в ексель?
Выгружай в csv, ексель понимает
0
Модератор
 Аватар для D1973
9929 / 6466 / 2457
Регистрация: 21.01.2014
Сообщений: 27,422
Записей в блоге: 3
29.01.2026, 06:34
Brakses, посмотрите эту тему, возможно, примеры из нее Вам подойдут как основа для Вашего приложения...
0
 Аватар для volodin661
6795 / 2292 / 348
Регистрация: 10.12.2013
Сообщений: 7,918
29.01.2026, 15:24
Предполагаю, его с нами больше нет, тс был в совершенном отчаянии,
под'ехал к последней черте.
0
1389 / 845 / 92
Регистрация: 08.02.2017
Сообщений: 3,599
Записей в блоге: 1
29.01.2026, 16:43
Цитата Сообщение от Brakses Посмотреть сообщение
Лазил и нашел в интернете библиотеку libxl
Цитата Сообщение от Brakses Посмотреть сообщение
Новый файл должен открыться в excel
Сам Excel является Com-ActiveX-библиотекой, его можно подключить в C++ и использовать как com-сервер, открывать там документы, создавать таблицы и т.д. с помощью удобной объектной модели Экселя.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.01.2026, 16:43
Помогаю со студенческими работами здесь

Из StringGrid в Excel-> Из Excel в StringGrid
Пишу программу котторая загружала бы таблицу .xls-> редактирование ->save -----.xls Как загружаь...

C++ и Excel - обработка данных Excel
Точнее было бы тему назвать C++ vs Excel - битва титанов ;-) Добрый день! Не подскажите:...

Возможно ли использование Variant Excel, Book, Sheet без установленного Excel?
Можно ли сделать как написано в названии?

Дано простое число N. Найти следующие простое число используя do while
простая задача с использованием do while на с++

Открыть папку и выделить файл/открыть файл в Excel
Привет, как программно открыть папку и выделить файл ? также как заставить Excel открыть файл ? в...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru