Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.06.2018, 22:44   #1
kostya_hor
Пользователь
 
Регистрация: 23.05.2018
Сообщений: 58
По умолчанию Вывод DBGrid в exel

У меня есть база данных и мне нужно ее вывести в Excel
в виде строчек и в виде диаграмы
вот что я пытался
может вы что-то подскажите
Код:
var i,x: Integer;
    E,S,Chart:variant;
begin

E:= CreateOleObject('Excel.Application');
E.visible:=true;
E.Workbooks.Add;
E.Workbooks[1].WorkSheets[1].Columns[1].ColumnWidth:=35;
E.Workbooks[1].WorkSheets[1].Columns[2].ColumnWidth:=35;
E.Workbooks[1].WorkSheets[1].Columns[3].ColumnWidth:=35;
E.Workbooks[1].WorkSheets[1].Columns[4].ColumnWidth:=35;
E.Workbooks[1].WorkSheets[1].Columns[5].ColumnWidth:=35;
E.Workbooks[1].WorkSheets[1].Rows[1].Font.Bold:=true;
E.Workbooks[1].WorkSheets[1].Rows[1].Font.Color:=clGreen;
E.Workbooks[1].WorkSheets[1].Rows[1].Font.Size:=14;
S:=E.Workbooks[1].WorkSheets[1];
S.Cells[1,1]:='№';
S.Cells[1,2]:='ПІБ';
S.Cells[1,3]:='№ Паспорта';
S.Cells[1,4]:='Марка машини';
S.Cells[1,5]:='Рік випуску';
S.Cells[1,6]:='Сума';
S.Cells[1,7]:='Знижка';
S.Cells[1,8]:='Підсумкова сума';
x:=2;
ADOQuery1.First;
for i:=0 to ADOQuery1.RecordCount-1 do
begin
S.Cells[x,1]:=ADOQuery1.Fields.Fields[0].Asinteger;
S.Cells[x,2]:=ADOQuery1.Fields.Fields[1].Asstring;
S.Cells[x,3]:=ADOQuery1.Fields.Fields[2].Asstring;
S.Cells[x,4]:=ADOQuery1.Fields.Fields[3].Asvariant;
S.Cells[x,5]:=ADOQuery1.Fields.Fields[4].Asstring ;
S.Cells[x,6]:=ADOQuery1.Fields.Fields[5].Asstring ;
S.Cells[x,7]:=ADOQuery1.Fields.Fields[6].Asstring ;
S.Cells[x,8]:=ADOQuery1.Fields.Fields[7].Asstring ;
inc(x);
ADOQuery1.Next;
end;

Chart:=E.WorkBooks[1].Charts.Add;
Chart.ChartType:=51;
Chart.SeriesCollection.Add(Source:=E.Workbooks[1].Sheets.Item[2].Range['e2:e'+IntToSTr(x)]);
Chart.HasTitle:=True;
Chart.ChartTitle.Text:='[Рік випуску]';
Chart.ChartTitle.Shadow:=true;
Chart.ChartTitle.Font.size:=26;
 E.Visible := true;

E:=UnAssigned;

end;
Изображения
Тип файла: png Безымя4444444444444444нный.png (29.3 Кб, 122 просмотров)

Последний раз редактировалось kostya_hor; 05.06.2018 в 22:47.
kostya_hor вне форума Ответить с цитированием
Старый 05.06.2018, 23:04   #2
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Ну как я уже писал в предыдущем Вашем посте на эту тему - можно без икса:

Код:
ADOQuery1.First;
for i:=0 to ADOQuery1.RecordCount-1 do
begin
S.Cells[i + 2,1]:=ADOQuery1.Fields.Fields[0].Asinteger;
S.Cells[i + 2,2]:=ADOQuery1.Fields.Fields[1].Asstring;
S.Cells[i + 2,3]:=ADOQuery1.Fields.Fields[2].Asstring;
S.Cells[i + 2,4]:=ADOQuery1.Fields.Fields[3].Asvariant;
S.Cells[i + 2,5]:=ADOQuery1.Fields.Fields[4].Asstring ;
S.Cells[i + 2,6]:=ADOQuery1.Fields.Fields[5].Asstring ;
S.Cells[i + 2,7]:=ADOQuery1.Fields.Fields[6].Asstring ;
S.Cells[i + 2,8]:=ADOQuery1.Fields.Fields[7].Asstring ;
ADOQuery1.Next;
end;
В сейчас-то вопрос в чём?
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 05.06.2018, 23:07   #3
kostya_hor
Пользователь
 
Регистрация: 23.05.2018
Сообщений: 58
По умолчанию

Цитата:
Сообщение от Sciv Посмотреть сообщение
В сейчас-то вопрос в чём?
нужно вывести в диаграму
kostya_hor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод DBGrid в exel kostya_hor Помощь студентам 4 01.06.2018 17:46
вывод в DBGrid 73Dimok73 C++ Builder 1 05.09.2014 13:39
DBGrid + Exel toxich БД в Delphi 1 07.07.2012 07:40
Вывод данных в Exel-файл Cugop Общие вопросы C/C++ 0 02.06.2012 06:42
вывод в Exel Ошибка Анатолий_Краснов БД в Delphi 3 02.07.2011 08:22