Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
 Аватар для Pro4poker
0 / 0 / 0
Регистрация: 30.07.2015
Сообщений: 75

Вывод из DBGrid в Excel

07.09.2016, 13:57. Показов 2573. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, подскажите пожалуйста как сделать вывод из dbgrid в exсel корректным? У меня сейчас вообще выводится база данных в ексель, но выводится только первая запись, я так понимаю это связанно стем, что в массиве нет кода который бы делал переход к следующей записи вот прикладываю код вывода в excel. Также, чтобы было понятнее прикладываю саму программу. Когда будет запрашивать логин и пароль, можете просто нажать ОК вам все равно откроется 2-ая форма, или посмотреть логин и пароль в базе данных log которая есть в архиве, сама же база данных находится в access файле database2. Если будут выходить ошибки в компоненте ADOConnection нужно будет указать путь до базы данных так как у меня и у вас они могут отличаться. Кнопка на вывод в excel находится в Меню->Файл->Excel.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
procedure TForm2.Excel1Click(Sender: TObject);
var
 XLApp,Sheet,Colum:Variant;
 index,i:Integer;
begin
 XLApp:= CreateOleObject('Excel.Application');
 XLApp.Visible:=true;
 XLApp.Workbooks.Add(-4167);
 XLApp.Workbooks[1].WorkSheets[1].Name:='Авто';
 Colum:=XLApp.Workbooks[1].WorkSheets['Авто'].Columns;
 Colum.Columns[1].ColumnWidth:=20;
 Colum.Columns[2].ColumnWidth:=20;
 Colum.Columns[3].ColumnWidth:=20;
 Colum.Columns[4].ColumnWidth:=20;
 Colum.Columns[5].ColumnWidth:=20;
 
 Colum:=XLApp.Workbooks[1].WorkSheets['Авто'].Rows;
 Colum.Rows[2].Font.Bold:=true;
 Colum.Rows[1].Font.Bold:=true;
 Colum.Rows[1].Font.Color:=clBlack;
 Colum.Rows[1].Font.Size:=14;
 
 Sheet:=XLApp.Workbooks[1].WorkSheets['Авто'];
 Sheet.Cells[1,2]:='Ассортимент';
 Sheet.Cells[2,1]:='Название';
 Sheet.Cells[2,2]:='Комплектация';
 Sheet.Cells[2,3]:='Тип';
 Sheet.Cells[2,4]:='Наличие';
 Sheet.Cells[2,5]:='Цена';
 
 index:=3;
 
for i:=1 to Form2.AdoQuery1.RecordCount do
 begin
  Sheet.Cells[index,1]:=Form2.AdoQuery1.Fields.Fields[0].AsString;
  Sheet.Cells[index,2]:=Form2.ADOQuery1.Fields.Fields[1].asstring;
  Sheet.Cells[index,3]:=Form2.ADOQuery1.Fields.Fields[2].asstring;
  Sheet.Cells[index,4]:=Form2.ADOQuery1.Fields.Fields[3].asstring;
  Sheet.Cells[index,5]:=Form2.ADOQuery1.Fields.Fields[4].asstring;
  index:=index+1;
 
 end;
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.09.2016, 13:57
Ответы с готовыми решениями:

Вывод из DBGrid в Excel
procedure TForm1.SpeedButton1Click(Sender: TObject); var ExcelApp : variant; row :integer; col, index:integer; begin ...

Вывод данных из dbGrid B Excel
Всем здравствуйте, помогите вывести таблицу в эксель, без новых компонентов. Таблица создается программно. Сам проект тут, таблица, которую...

Вывод параметрических запросов из dbgrid в excel
доброго времени суток. вот с чем столкнулся, вернее что не пойму как сделать: при нажатии на кнопку в dbgrid появляется результат...

3
5987 / 4562 / 1096
Регистрация: 29.08.2013
Сообщений: 28,202
Записей в блоге: 3
07.09.2016, 14:50
Лучший ответ Сообщение было отмечено Pro4poker как решение

Решение

не так
Delphi
1
2
3
4
5
6
7
8
9
10
for i:=1 to Form2.AdoQuery1.RecordCount do
 begin
  Sheet.Cells[index,1]:=Form2.AdoQuery1.Fields.Fields[0].AsString;
  Sheet.Cells[index,2]:=Form2.ADOQuery1.Fields.Fields[1].asstring;
  Sheet.Cells[index,3]:=Form2.ADOQuery1.Fields.Fields[2].asstring;
  Sheet.Cells[index,4]:=Form2.ADOQuery1.Fields.Fields[3].asstring;
  Sheet.Cells[index,5]:=Form2.ADOQuery1.Fields.Fields[4].asstring;
  index:=index+1;
 
 end;
а так
Delphi
1
2
3
4
5
6
7
8
9
10
while not Form2.AdoQuery1.Eof do
 begin
  Sheet.Cells[index,1]:=Form2.AdoQuery1.Fields.Fields[0].AsString;
  Sheet.Cells[index,2]:=Form2.ADOQuery1.Fields.Fields[1].asstring;
  Sheet.Cells[index,3]:=Form2.ADOQuery1.Fields.Fields[2].asstring;
  Sheet.Cells[index,4]:=Form2.ADOQuery1.Fields.Fields[3].asstring;
  Sheet.Cells[index,5]:=Form2.ADOQuery1.Fields.Fields[4].asstring;
  index:=index+1;
  Form2.AdoQuery1.Next;
 end;
1
 Аватар для Pro4poker
0 / 0 / 0
Регистрация: 30.07.2015
Сообщений: 75
07.09.2016, 15:03  [ТС]
Вау, спасибо.

Добавлено через 7 минут
Только если сейчас скомпилирвоать программу - все выводится, но один раз, если я закрою ексель и нажму на кнопку вывода ничего из бд не выводится, нужно именно программу перекомпилировать и тогда опять выводится, как-то можно исправить? Эксель закрываю без сохранения.
0
5987 / 4562 / 1096
Регистрация: 29.08.2013
Сообщений: 28,202
Записей в блоге: 3
07.09.2016, 15:05
код нужно смотреть
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.09.2016, 15:05
Помогаю со студенческими работами здесь

Вывод информации из DBGrid в шаблон Excel
Добрый день! Перечитал кучу информации по заезженной теме, на всех сайтах и форумах, включая мой любимый cyberforum, смог сделать то, что...

Вывод DBGrid в виде таблицы Excel
Я понимаю что в форуме и в интернете этих тем куча,но я все равно не догоняю как его вывести На фотке есть БД и элементы которые я к ней...

DBGrid в Excel вывод отдельных записей
Вывожу из DBGrid в Excel и возникает проблема, я хочу выводить записи с 1-10 через строку с 11 по 14 и через строку 15 запись. Помогите! ...

Выборочный вывод строк из Excel через ADO в DBGrid
Здравствуйте. Необходимо обработать файл, выгруженный из 1С (во вложении). Т.е. убрав лишние строки вывести нужное. Делаю так: ...

Из Excel в DBGrid. Подключиться к рабочей книге MS Excel, как к базе данных.
Доброго времени суток! У меня возникли проблемы при выводе таблицы с Excel на DBGrid, а именно: после запроса вывести весь лист в DBGrid...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru