Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.07.11;
Скачать: [xml.tar.bz2];

Вниз

Поставить границы ячейки 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.044 c
9-1112199822
$SerG$
2005-03-30 20:23
2005.07.11
[Error] File not found: DelphiX.dcr . Где взять?


14-1118004056
qwerrewq
2005-06-06 00:40
2005.07.11
Как скомпилить проект?


6-1112687353
Sergey2005
2005-04-05 11:49
2005.07.11
Фильтр страниц, загружаемых через протокол HTTP


3-1117176187
MakNik
2005-05-27 10:43
2005.07.11
Пересечение промежутков дат


8-1110488154
Okez
2005-03-10 23:55
2005.07.11
видео проигрыватель





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский