Сообщение от
InTacto
Задать границы
Код:
SetBorder(xlRowIDPar : Integer;xlColIDPar : Integer;Border : Integer)
// Стандартные индексы границ ячейки Excel
// 1. xlEdgeLeft = 7 (левая)
// 2. xlEdgeRight = 10 (правая)
// 3. xlEdgeTop = 8 (верхняя)
// 4. xlEdgeBottom = 9 (нижняя)
// 5. xlDiagonalDown = 5 (диагональ лево верх - право низ)
// 6. xlDiagonalUp = 6 (диагональ право верх - лево низ)
// Задается стиль линии: 1 - обычная сплошная
CASE Border OF
1: XlWrkSht.Range(GetxlColID(xlColIDPar) + GetxlRowID(xlRowIDPar)).Borders.Item(7).LineStyle := 1;
2: XlWrkSht.Range(GetxlColID(xlColIDPar) + GetxlRowID(xlRowIDPar)).Borders.Item(10).LineStyle := 1;
3: XlWrkSht.Range(GetxlColID(xlColIDPar) + GetxlRowID(xlRowIDPar)).Borders.Item(8).LineStyle := 1;
4: XlWrkSht.Range(GetxlColID(xlColIDPar) + GetxlRowID(xlRowIDPar)).Borders.Item(9).LineStyle := 1;
5: XlWrkSht.Range(GetxlColID(xlColIDPar) + GetxlRowID(xlRowIDPar)).Borders.Item(5).LineStyle := 1;
6: XlWrkSht.Range(GetxlColID(xlColIDPar) + GetxlRowID(xlRowIDPar)).Borders.Item(6).LineStyle := 1;
END;
// толщины линий для каждой стороны задаются через св-во Weight
XlWrkSht.Range(GetxlColID(xlColIDPar) + GetxlRowID(xlRowIDPar)).Borders.Item(7).Weight = 3
// обрамляющая, заполняются все 4 стороны
XlWrkSht.Range(GetxlColID(xlColIDPar) + GetxlRowID(xlRowIDPar)).Borders.LineStyle := 1;
GetxlColID(ColumnNo : Integer) : Text[30]
xlColIDLoc := '';
IF ColumnNo <> 0 THEN BEGIN
x := ColumnNo - 1;
c := 65 + x MOD 26;
xlColIDLoc[10] := c;
i := 10;
WHILE x > 25 DO BEGIN
x := x DIV 26;
i := i - 1;
c := 64 + x MOD 26;
xlColIDLoc[i] := c;
END;
FOR x := i TO 10 DO
xlColIDLoc[1+x-i] := xlColIDLoc[x];
END;
EXIT(xlColIDLoc);
GetxlRowID(RowNo : Integer) : Text[30]
xlRowIDLoc := '';
IF RowNo <> 0 THEN
xlRowIDLoc := FORMAT(RowNo);
EXIT(xlRowIDLoc);
перенос
Код:
XlWrkSht.Range(GetxlColID(xlColIDPar) + GetxlRowID(xlRowIDPar)).WrapText := TRUE;
остальное можно посмотреть, запустив запись макросов.