Текущий архив: 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.46 MB
Время: 0.039 c