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

Вниз

Кто работал с 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.007 c
14-97811
Caponid
2003-06-11 19:07
2003.06.30
Кто нить работал с QReport или ссылки знает?


4-97922
SammIk
2003-04-27 16:31
2003.06.30
Hook s


1-97649
Aleksander
2003-06-20 04:35
2003.06.30
DELPHI И КОМАТДНАЯ СТРОКА DOS


6-97762
HAMEL1ON
2003-04-25 02:30
2003.06.30
много потоков в TClientSocket


4-97932
Illusion
2003-04-27 13:57
2003.06.30
UpdateLayeredWindow





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский