Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

закрепленее - в Excel [D7, XP]


Chort ©   (2006-08-17 11:02:00) 

Подскажите как при программном экспорте Access в Excel сделать для первых двух строк таблицы Excel закрепленее - в Excel это делается так :
Полностью выделяется третья строка и нажимаем Окно- Закрепить области. Помогите кто знает.
Вот код
procedure TForm1.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:=10;
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:=clBlue;
Colum.Rows[1].Font.Size:=15;
Sheet:=XLApp.Workbooks[1].WorkSheets['Экспорт'];
Sheet.Cells[1,4]:='экспорт базы данных ';
Sheet.Cells[2,1]:='Номер';
Sheet.Cells[2,2]:='Название программы';
Sheet.Cells[2,3]:='Название файла';
Sheet.Cells[2,4]:='Производитель';
Sheet.Cells[2,5]:='Язык';
index:=3;
DataModule1.BookTable.First;
for i:=0 to DataModule1.BookTable.RecordCount-1 do
begin
Sheet.Cells[index,1]:=DataModule1.BookTable.Fields.Fields[0].AsString;
Sheet.Cells[index,2]:=DataModule1.BookTable.Fields.Fields[1].AsString;
Sheet.Cells[index,3]:=DataModule1.BookTable.Fields.Fields[2].AsString;
Sheet.Cells[index,4]:=DataModule1.BookTable.Fields.Fields[3].AsString;
Sheet.Cells[index,5]:=DataModule1.BookTable.Fields.Fields[4].AsString;
Inc(index);
DataModule1.BookTable.Next;
 end;


Chort   (2006-08-17 23:03:00) [1]

to umbra
Спасибо!Немного разобрался.


umbra   (2006-08-17 20:10:00) [2]

открываете эксель, выбираете в меню "Сервис\макрос\Начать запись", выполняете нужные действия, жмете "Прекратить запись", жмете Alt-F11 - открывается редактор вижуалбейсика, открываете Модуль1 - и читаете код для операций, которые вы выполнили. В код на делфи переносите все названия нужных методов и свойств


Chort   (2006-08-17 19:38:00) [3]

Если можно со второго пункта подробнее, уж очень интересно.


umbra   (2006-08-17 17:36:00) [4]

1) из справки экселевской
2) записываю макросы в экселе, копирую в буфер, вставляю в код на делфи,
   заменяю в коллекциях все круглые скобки на квадратные. Обычно работает :)


Chort   (2006-08-17 17:25:00) [5]

to umbra
Точно. Спасибо! Если не секрет, то откуда вы это знаете?


umbra   (2006-08-17 12:40:00) [6]

очепятка вышла - SplitRowнадо. Но можно было и в справку посмотреть.


Chort   (2006-08-17 11:49:00) [7]

to umbra
Спасибо. Компилится нормально. при запуске экспорта выдает ошибку Method 'SplitRows' not suported by automation object. Вот такая петрушка.


umbra   (2006-08-17 11:40:00) [8]

var
 mywindow: variant;
{..................................}
mywindow := XLApp.Workbooks[1].Windows[1];
mywindow.SplitRows := 2;
mywindow.FreezePanes := true;
mywindow := Unassigned;
{..................................}


Сергей М.   (2006-08-17 11:04:00) [9]

Запиши соотв.макрос и подсмотри как в нем это делается.


Наверх

Титульная страница Поиск, карта сайта Написать письмо