![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обрамление наскольких ячеек в 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;