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

Вниз

Кто работал с Excel? Плиз... как задать тип границ ячейки, её   Найти похожие ветки 

 
Term   (2003-06-19 15:51) [0]

Плиз... как задать тип границ ячейки, её размер и другие какие еще есть параметры

я создаю файл вот таким образом:

var
xlap,xl:variant;
i:integer;
begin
if SaveDialog1.Execute then
begin
XLap:= CreateOLEObject("Excel.Application");
xlap.workbooks.add;
XLap.visible := true;
xl:=xlap.Workbooks[1].Sheets[1];
i:=1;
Form1.Table1.First;
while not Form1.Table1.Eof do
begin
xl.Cells[i,1].Value:=Form1.Table1.FieldByName("Famil").AsString;
inc(i);
Form1.Table1.Next;
end;
xlap.ActiveWorkbook.SaveAs(SaveDialog1.FileName);
end;

а как оформить таблицу?


 
Palladin ©   (2003-06-19 15:55) [1]

запиши в экселе макрос да посмотри


 
Term   (2003-06-19 15:58) [2]

а из делфей чо никак??? без макрософ??? тем более я их писать не знаю как


 
Term   (2003-06-19 16:06) [3]

народ ну ктонить...... плиз очень нужно


 
Palladin ©   (2003-06-19 16:09) [4]

тогда чо никак...


 
madm ©   (2003-06-19 16:11) [5]

Берешь ексел. Идешь в меню "Сервис", там "Макрос", "Начать запись", жмешь "Ок". Меняешь границу у любой ячейки на ту которая тебе нужна. Останавливаешь запись макроса. Идешь "Сервис", там "Макрос", "Редактор Visual Basic". Там открываешь свою книгу, в ней открываешь свой макрос(видимо будет называться "Макрос1"). Смотришь какие свойства у Cell ексел поменял чтобы поменять границы. Будет вот так:
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

Соответственно фсе это же творишь из делфей...
О типах границ смотри хелп в екселе или msdn.


 
Term   (2003-06-19 16:18) [6]

спасибо буду пробовать


 
Term   (2003-06-19 16:49) [7]

сделал так
xl.Cells[i,1].Borders(xlDiagonalDown).LineStyle:=xlNone;
xl.Cells[i,1].Borders(xlDiagonalUp).LineStyle:=xlNone;

xl.Cells[i,1].Borders(xlEdgeLeft).LineStyle:=xlContinuous;
xl.Cells[i,1].Borders(xlEdgeLeft).Weight:=xlMedium;
xl.Cells[i,1].Borders(xlEdgeLeft).ColorIndex:=xlAutomatic;

xl.Cells[i,1].Borders(xlEdgeTop).LineStyle:= xlNone;
xl.Cells[i,1].Borders(xlEdgeBottom).LineStyle:= xlNone;

xl.Cells[i,1].Borders(xlEdgeRight).LineStyle:= xlContinuous;
xl.Cells[i,1].Borders(xlEdgeRight).Weight:= xlMedium;
xl.Cells[i,1].Borders(xlEdgeRight).ColorIndex:= xlAutomatic;

говорит "Член группы не найден", как быть?


 
Basilio ©   (2003-06-19 17:02) [8]

Может ....Borders.Item[xlEdgeTop]... ?


 
madm ©   (2003-06-19 17:02) [9]

Я не помню как это в делфях сделано, но так как ты написал полюбому работать не будет! Откуда делфям знать что такое xlDiagonalDown или xlNone? В билдере надо у варианта(у твоего xl) юзать OlePropertySet. Там указываешь имя проперти и ее значение. Наверное что-то вроде того в делфях должно быть:
tmp:Variant;
tmp := xl.OlePropertyGet("Borders", "xlDiagonalDown");
tmp.OlePropertySet("LineStyle", "xlNone");

Либо надо вместо xlNone, xlDiagonalDown и прочих ставить целые значение(ведь это все integer на самом деле). Какие значения имена каким значениям соответствуют смотри в отладчике в екселевском редакторе VB. Или в хелпах...


 
Term   (2003-06-19 17:08) [10]

понятно спасибо, снова всё попробую


 
Basilio ©   (2003-06-19 17:13) [11]

цитата из Excel97.pas (D:\Program files\Borland\Delphi5\Ocx\Servers\)

const
xlInsideHorizontal = $0000000C;
xlInsideVertical = $0000000B;
xlDiagonalDown = $00000005;
xlDiagonalUp = $00000006;
xlEdgeBottom = $00000009;
xlEdgeLeft = $00000007;
xlEdgeRight = $0000000A;
xlEdgeTop = $00000008;


 
Ricky-Ticky-Tavy ©   (2003-06-19 17:24) [12]

var
xlap,xl:variant;
begin
if SaveDialog1.Execute then
begin
XLap:= CreateOLEObject("Excel.Application");
xlap.workbooks.add;
XLap.visible := true;
xl:=xlap.Workbooks[1].Sheets[1];
xl.Cells[1, 1]:="XXX";
xlap.ActiveWorkbook.SaveAs(SaveDialog1.FileName);
xl.Cells[1,1].Borders[xlEdgeRight].LineStyle:=xlContinuous;
xl.Cells[1,1].Borders[xlEdgeRight].Weight:=xlMedium;
xl.Cells[1,1].Borders[xlEdgeRight].ColorIndex:=xlAutomatic;
end;
end;

ЗАРАБОТАЛО!!!



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

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

Наверх




Память: 0.5 MB
Время: 0.018 c
1-97599
Aleksandr
2003-06-17 15:10
2003.06.30
Как по цвету фона задать цвет текста?


14-97827
Sab
2003-06-06 21:26
2003.06.30
Исходник игры Xonix


1-97672
McSimm2
2003-06-17 13:10
2003.06.30
Фиксированный столбез в StringGrid


3-97473
alex_bredin
2003-06-04 16:32
2003.06.30
Значение переменной в QReport


3-97482
Disokl
2003-06-04 09:46
2003.06.30
про DBF и BDE