Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.07.11;
Скачать: CL | DM;

Вниз

Поставить границы ячейки Excel через Delphi!!!   Найти похожие ветки 

 
grol ©   (2005-05-26 02:13) [0]

Здравствуйте мастера Delphi!!! Помогите пожалуйста!!! Вот код сохранения информации из ADOQuery в Excel:

procedure TForm1.Button1Click(Sender: TObject);
var
 Excel, Workbook, Worksheet: OleVariant;
 CurrentRowIndex, CurrentColIndex: integer;
begin
 CurrentRowIndex := 1;
 Excel := CreateOleObject("Excel.Application");
 try
   Workbook := Excel.Workbooks.Add;
   Worksheet := Workbook.Worksheets.Add;
   with ADOQuery do
   try
     Open;
     while not Eof do
     begin
       for CurrentColIndex := 0 to FieldsCount - 1 do
         Worksheet.Cells(CurrentRowIndex, CurrentColIndex + 1) := Fields[CurrentColIndex].AsString;
       Next;
       Inc(CurrentRowIndex);
     end;
   finally
     begin      
    //здесь нужно написать код выделение ячейки и задания ей границ!!!
    ........
    //например:
     Worksheet.Range["a1","a1"].Font.Color := clBlue;
    //поменять цвет шрифта в ячейке, а мне нужно границы поставить на ячейку
     end;
   end;
 finally
   Excel.Visible := True;
   Excel := Unassigned;
 end;
end;

Это макрос в Excel: выделение ячейки и задания ей границ!!!

Sub Макрос1()
" Макрос1 Макрос
" Макрос записан 26.05.2005 (admin)
   Range("D8").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
End Sub

Помогите пожалуйста опытные программситы, буду очень вам благодарен!!! Спасибо

заранее!!!


 
yk ©   (2005-05-26 07:36) [1]

Во-первых, рекомендую сохранять выделение в переменную типа Variant:

var
Range, Cell1, Cell2: Variant;
......

begin

....
Cell1 := WorkBook.ActiveSheet.Cells[beginRow-3,BeginCol-1];
Cell2 := WorkBook.ActiveSheet.Cells[beginRow-1,BeginCol];
Range := WorkBook.ActiveSheet.Range[Cell1, Cell2];
 Range.Select;

....

end;

Во-вторых ,
рекомендую найти статью "По волнам интеграции и почитать её"

В-третьих,
рамку клетки (или диапазона) делаешь так:
....
Range.Select;
 Range.Borders.LineStyle:=xlContinuous;
 Range.Borders.Weight := xlThick; //или xlMedium
...
В-четвёртых, больше эксперементируй с макросами в Excel - там куча инфы.

В-пятых, код был приведён для выделения всех сторон клеток.
Может кто-нибудь знает, как выделить, например только боковые границы? А то у меня не получилось :(


 
YurikGL ©   (2005-05-26 07:38) [2]


>    Range("D8").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
> End Sub


подозреваю, что будет что-то типа
Excel.activesheet.Range("D8").Select
Excel.selection.borders.item(xlEdgeRight).linestyle:=xlContinuous
Excel.selection.borders.item(xlEdgeRight).Weight = xlMedium
Excel.selection.borders.item(xlEdgeRight).ColorIndex = xlAutomatic

Дальше по образу и подобию


 
YurikGL ©   (2005-05-26 07:40) [3]


> Может кто-нибудь знает, как выделить, например только боковые
> границы? А то у меня не получилось :(

Катя, а макрос писать не пробовала?
xlEdgeLeft - левая граница выбранной области,
xlEdgeBottom - нижняя граница выбранной области....


 
yk ©   (2005-05-26 08:12) [4]

Ок

Не додумалась до
> item

Но это у мнея пока умозрительный интерес

А ты где? У меня назрело несколько вопросов и уточнений по базе.
Хоть в Аське появись, плиз


 
Руслан   (2005-05-26 11:01) [5]

Обрисовка только указанных границ:
Sheet.Cells.Item[i+2, 1].Borders.LineStyle:=1;- тип линии
      Sheet.Cells.Item[i+2, 1].Borders.Weight:= 3; - толщина
      Sheet.Cells.Item[i+2, 1].Borders[xlDiagonalDown].LineStyle:=xlNone; - снизу нет
      Sheet.Cells.Item[i+2, 1].Borders[xlDiagonalUp].LineStyle:=xlNone; - по диагонали нет
      Sheet.Cells.Item[i+2, 1].Borders[xlEdgeLeft].LineStyle:=xlNone; - слева нет
      Sheet.Cells.Item[i+2, 1].Borders[xlEdgeRight].LineStyle:=xlNone; - справа нет
      Sheet.Cells.Item[i+2, 1].Borders[xlEdgeTop].LineStyle:=xlNone; - сверху нет
где i+2 - номер ячейки, если есть то этой строки не надо

Обрисовка диапазона ячеек:
// обрисовка диапазона ячеек
  Excel.WorkBooks[1].WorkSheets[1].Range["A3:" + chr(ord("C")+n) + IntToStr(i)].Borders.LineStyle := 1;
  Excel.WorkBooks[1].WorkSheets[1].Range["A3:" + chr(ord("C")+n) + IntToStr(i)].Borders.Weight := 2;
  Excel.WorkBooks[1].WorkSheets[1].Range["A3:" + chr(ord("C")+n) + IntToStr(i)].Borders.ColorIndex := 1;



Страницы: 1 вся ветка

Текущий архив: 2005.07.11;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.052 c
6-1113056900
Arnold
2005-04-09 18:28
2005.07.11
Передача изображения через Indy


14-1118399699
Ega23
2005-06-10 14:34
2005.07.11
Слушайте, а "Взлетит!" к чему было сказано?


4-1115215444
ANB
2005-05-04 18:04
2005.07.11
Как эмулировать нажатие клавиш на клавиатуре для чужой программы


4-1115726011
Ilya__
2005-05-10 15:53
2005.07.11
Подскажите, можно ли из Делфи, запустить функцию Speech.


14-1118266840
Германн
2005-06-09 01:40
2005.07.11
Установка и удаление программ