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

Delphi Sources



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

 
 
Опции темы Поиск в этой теме Опции просмотра
  #7  
Старый 23.10.2015, 15:55
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Код:
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
unit Friday;
 
interface
 
uses
  ComObj, Variants, DB;
 
procedure DataSetToExcel(DataSet: TDataSet; Name: string;
  FieldsName: Boolean = True; AFileName: string = ''; AutoFit: Boolean = True);
 
implementation
 
const
  xlWBATWorksheet = $FFFFEFB9;
 
  xlExcel2 = $00000010;
  xlExcel3 = $0000001D;
  xlExcel4 = $00000021;
  xlExcel5 = $00000027;
  xlExcel7 = $00000027;
  xlExcel9795 = $0000002B;
 
procedure DataSetToExcel(DataSet: TDataSet; Name: string;
  FieldsName: Boolean = True; AFileName: string = ''; AutoFit: Boolean = True);
var
  ExcelApplication: OleVariant;
  ExcelWorkbook: OleVariant;
  ExcelWorksheet: OleVariant;
  row, col: Integer;
  i: Integer;
begin
  ExcelApplication:=CreateOleObject('Excel.Application');
  try
    ExcelWorkbook:=ExcelApplication.Workbooks.Add(xlWBATWorksheet);
    ExcelWorksheet:=ExcelWorkbook.Sheets.Item[1];
    ExcelWorksheet.Name:=Name;
 
    row:=1;
    col:=1;
    if FieldsName then
    begin
      for i:=0 to DataSet.FieldDefs.Count-1 do
      begin
        ExcelWorksheet.Cells.Item[row, col]:=DataSet.FieldDefs[i].Name;
        Inc(col);
      end;
      Inc(row);
    end;
 
    DataSet.DisableControls;
    DataSet.First;
    try
      while not DataSet.Eof do
      begin
        col:=1;
        for i:=0 to DataSet.Fields.Count-1 do
        begin
          ExcelWorksheet.Cells.Item[row, col]:=DataSet.Fields[i].AsString;
          Inc(col);
        end;
        Inc(row);
        DataSet.Next;
      end;
    finally
      DataSet.EnableControls;
    end;
 
    if AutoFit then ExcelWorksheet.Columns.EntireColumn.AutoFit;
    ExcelApplication.Visible:=True;
 
    if AFileName<>'' then
      ExcelWorkbook.SaveAs(Filename:=AFileName, FileFormat:=xlExcel7);
  finally
    ExcelApplication.Quit;
    ExcelApplication:=Null;
  end;
end;
 
end.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
 


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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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