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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 13.03.2009, 23:24
Priest Priest вне форума
Прохожий
 
Регистрация: 13.03.2009
Сообщения: 2
Репутация: 10
Хорошо EXCEL-OLE

Добрый день камрады, извините меня за тупорылейший вопрос, буду рад если хотябы ссылку подкинете, пишу диплом, работа в том что нужно выводить в Делфи екселевский файл, но через ОЛЕ у меня только исходники того как контролировать САМ ЕКСЕЛЬ но не на форму выводить

Код:
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
uses
  ComObj;
 
var
  ExcelApp: OleVariant;
 
implementation
 
 
procedure TForm1.Button1Click(Sender: TObject);
const
  // SheetType
  xlChart = -4109;
  xlWorksheet = -4167;
  // WBATemplate
  xlWBATWorksheet = -4167;
  xlWBATChart = -4109;
  // Page Setup
  xlPortrait = 1;
  xlLandscape = 2;
  xlPaperA4 = 9;
  // Format Cells
  xlBottom = -4107;
  xlLeft = -4131;
  xlRight = -4152;
  xlTop = -4160;
  // Text Alignment
  xlHAlignCenter = -4108;
  xlVAlignCenter = -4108;
  // Cell Borders
  xlThick = 4;
  xlThin = 2;
var
  ColumnRange: OleVariant;
    
  // Function to get the number of Rows in a Certain column
  function GetLastLine(AColumn: Integer): Integer;
  const
    xlUp = 3;
  begin
    Result := OLEConTainer1.OleObject.Range[Char(96 + AColumn) +
      IntToStr(65536)].end[xlUp].Rows.Row;
  end;
 
begin
  { Start Excel }
 
  // By using GetActiveOleObject, you use an instance o
  // f Word that's already running,
  // if there is one.
  try
    ExcelApp := GetActiveOleObject('Excel.Application');
  except
    try
      // If no instance of Word is running, try to Create a new Excel Object
      ExcelApp := CreateOleObject('Excel.Application');
    except
      ShowMessage('Cannot start Excel/Excel not installed ?');
      Exit;
    end;
  end;
 
  // Add a new Workbook, Neue Arbeitsmappe offnen
  ExcelApp.Workbooks.Add(xlWBatWorkSheet);
 
  // Open a Workbook, Arbeitsmappe offnen
  ExcelApp.Workbooks.Open('c:\YourFileName.xls');
 
 
  // Rename the active Sheet
  ExcelApp.ActiveSheet.Name := 'This is Sheet 1';
 
  // Rename
  ExcelApp.Workbooks[1].WorkSheets[1].Name := 'This is Sheet 1';
 
  // Insert some Text in some Cells[Row,Col]
  ExcelApp.Cells[1, 1].Value := 'SwissDelphiCenter.ch';
  ExcelApp.Cells[2, 1].Value := 'http://www.swissdelphicenter.ch';
  ExcelApp.Cells[3, 1].Value := FormatDateTime('dd-mmm-yyyy', Now);
 
  // Setting a row of data with one call
  ExcelApp.Range['A2', 'D2'].Value := VarArrayOf([1, 10, 100, 1000]);
 
  // Setting a formula
  ExcelApp.Range['A11', 'A11'].Formula := '=Sum(A1:A10)';
 
  // Change Cell Alignement
  ExcelApp.Cells[2, 1].HorizontalAlignment := xlright;
 
  // Change the Column Width.
  ColumnRange := ExcelApp.Workbooks[1].WorkSheets[1].Columns;
  ColumnRange.Columns[1].ColumnWidth := 20;
  ColumnRange.Columns[2].ColumnWidth := 40;
 
  // Change Rowheight / Zeilenhohe andern:
  ExcelApp.Rows[1].RowHeight := 15.75;
 
  // Merge cells, Zellen verbinden:
  ExcelApp.Range['B3:D3'].Mergecells := True;
 
  // Apply borders to cells, Zellen umrahmen:
  ExcelApp.Range['A14:M14'].Borders.Weight := xlThick; // Think line/ Dicke Linie
  ExcelApp.Range['A14:M14'].Borders.Weight := xlThin;  // Thin line Dunne Linie
 
  // Set Bold Font in cells, Fettdruck in den Zellen
 
  ExcelApp.Range['B16:M26'].Font.Bold := True;
 
  // Set Font Size, Schriftgro?e setzen
  ExcelApp.Range['B16:M26'].Font.Size := 12;
 
  //right-aligned Text, rechtsbundige Textausrichtung
  ExcelApp.Cells[9, 6].HorizontalAlignment := xlright;
 
  // horizontal-aligned text, horizontale Zentrierung
  ExcelApp.Range['B14:M26'].HorizontalAlignment := xlHAlignCenter;
 
  // left-aligned Text, vertikale Zentrierung
  ExcelApp.Range['B14:M26'].VerticallyAlignment := xlVAlignCenter;
 
 
  { Page Setup }
 
  ExcelApp.ActiveSheet.PageSetup.Orientation := xlLandscape;
 
  // Left, Right Margin (Seitenrander)
  ExcelApp.ActiveSheet.PageSetup.LeftMargin  := 35;
  ExcelApp.ActiveSheet.PageSetup.RightMargin := -15;
 
  // Set Footer Margin
  ExcelApp.ActiveSheet.PageSetup.FooterMargin := ExcelApp.InchesToPoints(0);
 
  // Fit to X page(s) wide by Y tall
  ExcelApp.ActiveSheet.PageSetup.FitToPagesWide := 1// Y
  ExcelApp.ActiveSheet.PageSetup.FitToPagesTall := 3; // Y
 
  // Zoom
  ExcelApp.ActiveSheet.PageSetup.Zoom := 95;
 
  // Set Paper Size:
  ExcelApp.PageSetup.PaperSize := xlPaperA4;
 
  // Show/Hide Gridlines:
  ExcelApp.ActiveWindow.DisplayGridlines := False;
 
  // Set Black & White
  ExcelApp.ActiveSheet.PageSetup.BlackAndWhite := False;
 
  // footers
  ExcelApp.ActiveSheet.PageSetup.RightFooter := 'Right Footer / Rechte Fu?zeile';
  ExcelApp.ActiveSheet.PageSetup.LeftFooter  := 'Left Footer / Linke Fu?zeile';
 
  // Show Excel Version:
  ShowMessage(Format('Excel Version %s: ', [ExcelApp.Version]));
 
  // Show Excel:
  ExcelApp.Visible := True;
 
  // Save the Workbook
  ExcelApp.SaveAs('c:\filename.xls');
 
  // Save the active Workbook:
  ExcelApp.ActiveWorkBook.SaveAs('c:\filename.xls');
 
end;

Может я делаю чего не так? но этот код открывает мне сам эксель...
И ещё-он мне постоянно ругается на строку

ExcelApp.Range['B14:M26'].VerticallyAlignment := xlVAlignCenter;
Типа undeclared identifier....

Очень прошу о помощи-нужно простейший код через который можно вывести на форму екселевский файл, желательно со связями, ибо там 3 листа, ну и через ОЛЕконтейнер желательней всего.... или дописать этот...
Заранее спасибо

Последний раз редактировалось Priest, 13.03.2009 в 23:26.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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