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

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

Оформление ячеек в Excel [D7, WinXP]


konda ©   (2006-05-16 14:52:00) 

Сделать жирный шрифт получилось.
А вот сделать границу у области и сделать закрепление области не получается.
Поскажите, пожалуйста!

Макрос Excel:
------------------------------------
   Rows("4:4").Select
   ActiveWindow.FreezePanes = True
   Range("C5:K5").Select
   Selection.Borders(xlDiagonalDown).LineStyle = xlNone
   Selection.Borders(xlDiagonalUp).LineStyle = xlNone
   With Selection.Borders(xlEdgeLeft)
       .LineStyle = xlContinuous
       .Weight = xlMedium
       .ColorIndex = xlAutomatic
   End With
   With Selection.Borders(xlEdgeTop)
       .LineStyle = xlContinuous
       .Weight = xlMedium
       .ColorIndex = xlAutomatic
   End With
   With Selection.Borders(xlEdgeBottom)
       .LineStyle = xlContinuous
       .Weight = xlMedium
       .ColorIndex = xlAutomatic
   End With
   With Selection.Borders(xlEdgeRight)
       .LineStyle = xlContinuous
       .Weight = xlMedium
       .ColorIndex = xlAutomatic
   End With
------------------------------------
var
   ExcelApp, Workbook, Range, Cell1, Cell2, ArrayData  : Variant;
   TemplateFile : String;
   BeginCol, BeginRow, i, j : integer;
   RowCount, ColCount : integer;
begin
 // Координаты левого верхнего угла области,
 //в которую будем выводить данные
 BeginCol := 1;
 BeginRow := 5;

 // Размеры выводимого массива данных
 RowCount := 100;
 ColCount := 50;

 // Создание Excel
 ExcelApp := CreateOleObject('Excel.Application');

 // Отключаем реакцию Excel на события,
 //чтобы ускорить вывод информации
 ExcelApp.Application.EnableEvents := false;

 //  Создаем Книгу (Workbook)
 // Если заполняем шаблон, то
 // Workbook := ExcelApp.WorkBooks.Add('C:\MyTemplate.xls');
 Workbook := ExcelApp.WorkBooks.Add;

 // Создаем Вариантный Массив,
 //который заполним выходными данными
 ArrayData := VarArrayCreate([1, RowCount, 1, ColCount], varVariant);

 // Заполняем массив
 for I := 1 to RowCount do
   for J := 1 to ColCount do
     ArrayData[I, J] := J * 10 + I;

 // Левая верхняя ячейка области,
 //в которую будем выводить данные
 Cell1 := WorkBook.WorkSheets[1].Cells[BeginRow, BeginCol];
 // Правая нижняя ячейка области,
 //в которую будем выводить данные
 Cell2 := WorkBook.WorkSheets[1].Cells[BeginRow  + RowCount - 1,
          BeginCol + ColCount - 1];

 // Область, в которую будем выводить данные
 Range := WorkBook.WorkSheets[1].Range[Cell1, Cell2];

  // Шрифт делаем жирным
 WorkBook.WorkSheets[1].Range['C5', 'K5'].Font.Bold := True;


 // А вот и сам вывод данных
 // Намного быстрее поячеечного присвоения
 Range.Value := ArrayData;

 // Делаем Excel видимым
 ExcelApp.Visible := true;
end;


konda   (2006-05-17 11:27:00) [1]

И еще.
Что-то не работает выравнивание колонки по ширине.

ExcelApp.Columns['I'].select;
ExcelApp.Columns['I'].EntireColumn.AutoFit;


Ошибки не выдает, но и ничего не делает.


Savek   (2006-05-17 09:16:00) [2]

Все константы уже давно объявлены в модуле ExcelXP, Excel97 или Excel2000
(C:\Program Files\Borland\Delphi7\Ocx\Servers) надо просто добавить оное в список uses


EvS   (2006-05-17 08:58:00) [3]

Объяви свою константу с числовым значением равным xlContinuous или передавай число.


konda   (2006-05-17 08:32:00) [4]

xlContinuous - как ее объявить (Undeclared identifier)?


AbrosimovA   (2006-05-16 16:27:00) [5]

Range.Borders.LineStyle:=xlContinuous;//Бордюр- непрерывная линия


Savek   (2006-05-16 16:23:00) [6]

А в чем собственно проблема?

ExcelApp.Range['A1:E10'].select;
ExcelApp.Selection.Borders.LineStyle:=xlContinuous;


Наверх

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