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

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

Обрамление наскольких ячеек в MS Excel при позднем связывании. [D6, Win2k]


dtm ©   (2003-01-30 13:16:00) 

Подскажите, уважаемые, как осуществить сабж? Нужно выделять заголовки таблиц на рабочем листе и обрамлять их рамкой. Запись макросов в Экселе и их просмотр как примера ник чему не привели. Если кто может поделитсья кусочком кода, буду очень благодарен.

Необходимо и достаточно, чтобы нормально работало под 97 и 2К Офисом.


Паша   (2003-01-30 19:24:00) [1]

Там, наверное, и объекты для работы с Excel еще есть (ради констант увеличивать размеры ехе)? Так тогда через них и нужно работать, я так понимаю, будет гораздо быстрей, и управление более гибкое.
Впрочем, не спорю, можно и так. Я просто уже давно в ту сторону не смотрел.


Романов Р.В.   (2003-01-30 19:05:00) [2]

Это не раннее связывание, просто там константы эти прописаны.


Паша   (2003-01-30 18:55:00) [3]

Но ведь это ранее связывание, на уровне исходников (а человеку надо через CreateOLEObject("Excel.Application")- позднее), или я неправильно понимаю термин?


Романов Р.В.   (2003-01-30 18:51:00) [4]


> А где взять значения xlEdgeLeft, xlContinuous, xlMedium?

uses excel97


Паша   (2003-01-30 18:13:00) [5]

>Opuhshii © (30.01.03 16:47)
А где взять значения xlEdgeLeft, xlContinuous, xlMedium? Delphi ругнется, я так думаю... Можно, конечно попробовать 1,2,3 может и заработает. А может и не ругнется, только что у себя нашел похожие конструкции, как это все работает уже не помню- 3 года прошло, помню только что сидел над этой лабудой долго и упорно. Тогда приношу извинения.
Но все равно, быстрее будет обрамить нужную область сразу, или Вы не соласны?
А лучше всего нарисовать шаблон и кидать данные в него, оно и красивше будет, и пользователь поменять сможет. В программу зашивать вывод данных нехорошо.
Еще раз приношу извинения Романов Р.В. © (30.01.03 13:25), если я не прав.


Opuhshii   (2003-01-30 16:47:00) [6]

причем "Однако, при позднем связывании" ... сие оч.интересно...


Opuhshii   (2003-01-30 16:46:00) [7]

2Паша © (30.01.03 15:24)
вы уж извините... а в чем разница?,.. просто любопытсво съедает,?,...


dtm   (2003-01-30 15:30:00) [8]

Хех, большое спасибо, за позднее связывание - особенно.

Также, на этом же сайте нашёл в копилке весьма неплохой вариант.


Паша   (2003-01-30 15:24:00) [9]

>Романов Р.В. © (30.01.03 13:25)
Однако, при позднем связывании
Надо так:
vExcel.Range[vExcel.Cells[1,1], vExcel.Cells[2,Grid.FieldCount]].Select;
vExcel.Selection.Borders.LineStyle:= 1;//тонкая рамка


Романов Р.В.   (2003-01-30 13:25:00) [10]

procedure SetEdge(Range: OleVariant);
begin
Range.Borders[xlEdgeLeft].LineStyle := xlContinuous;
Range.Borders[xlEdgeLeft].Weight := xlMedium;
Range.Borders[xlEdgeTop].LineStyle := xlContinuous;
Range.Borders[xlEdgeTop].Weight := xlMedium;
Range.Borders[xlEdgeBottom].LineStyle := xlContinuous;
Range.Borders[xlEdgeBottom].Weight := xlMedium;
Range.Borders[xlEdgeRight].LineStyle := xlContinuous;
Range.Borders[xlEdgeRight].Weight := xlMedium;
if Range.Columns.Count > 1 then
begin
Range.Borders[xlInsideVertical].LineStyle := xlContinuous;
Range.Borders[xlInsideVertical].Weight := xlThin;
end;
if Range.Rows.Count > 1 then
begin
Range.Borders[xlInsideHorizontal].LineStyle := xlContinuous;
Range.Borders[xlInsideHorizontal].Weight := xlThin;
end;
end;


Наверх

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