Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 25.12.2008, 16:55
Аватар для pesi
pesi pesi вне форума
Активный
 
Регистрация: 12.09.2008
Сообщения: 275
Репутация: 43
По умолчанию Экспорт в эксель из DBGridEh

делаю экспорт в эксель

Код:
var
 XLApp,Sheet,Colum:Variant;
 index,i, j:Integer;

begin
 XLApp:= CreateOleObject('Excel.Application');
 XLApp.Visible:=true;
 XLApp.Workbooks.Add(-4167);
 XLApp.Workbooks[1].WorkSheets[1].Name:='Сводная';
 XLApp.ActiveSheet.PageSetup.Orientation:= 2;
 XLApp.ActiveSheet.PageSetup.RightMargin:= XLApp.Application.InchesToPoints(0.4);

 XLapp.WorkBooks[1].WorkSheets[1].Range['A2:N2'].Borders.LineStyle := 1;

 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[2,1]:='1';
 Sheet.Cells[2,2]:='0-1';
 Sheet.Cells[2,3]:='1-2';
 Sheet.Cells[2,4]:='2-3';
 Sheet.Cells[2,5]:='3-4';
 Sheet.Cells[2,6]:='4-5';
 Sheet.Cells[2,7]:='6-7';
 Sheet.Cells[2,8]:='7-8';
 Sheet.Cells[2,9]:='0-8';

 index:=3;
 DBGridEh1.DataSource.DataSet.First;
 for i:=1 to DBGridEh1.DataSource.DataSet.RecordCount do
 begin
   for j:=1 to DBGridEh1.FieldCount do
   sheet.cells[index,j]:=DBGridEh1.fields[j-1].asstring;
   inc(index);
   DBGridEh1.DataSource.DataSet.Next;
   end;
но в эксель экспортируется вся DBGridEh. В DBGridEh сделано Sumlist Active=true, вот сумма столбцов и не экспортируется. Подскажите что делать???
Ответить с цитированием
  #2  
Старый 26.12.2008, 08:49
k@Z@k k@Z@k вне форума
Новичок
 
Регистрация: 31.07.2007
Сообщения: 55
Репутация: 12
По умолчанию

попробуй сумировать в самом экселе:
Код:
XLApp.workbooks[1].worksheets[1].cells[10,1].FormulaLocal:='=СУММ(R[-'+inttostr(i-1)+']C:R[-1]C)/2'; 
Ответить с цитированием
  #3  
Старый 26.12.2008, 13:50
Аватар для pesi
pesi pesi вне форума
Активный
 
Регистрация: 12.09.2008
Сообщения: 275
Репутация: 43
По умолчанию

Спасибо k@Z@k!
Чё, я до этого сам не додумался??? Только я переделал cells[10,1] в cells[DBGridEh1.RowCount,1].
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 04:21.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter