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

Вниз

Как сделать цикл по колонкам в Excel?   Найти похожие ветки 

 
gsvserg ©   (2003-08-07 18:49) [0]

Нужно в зависимости от длины поля в таблице, которая копируется в Excel, менять column.width в Excel
Что-то типа
for i:=0 to 25 do
if a>b then
worksheet.columns[i].width:=...


 
malamba   (2003-08-07 19:10) [1]

Что за таблица? И что за длина поля?


 
gsvserg ©   (2003-08-07 19:23) [2]

Таблица AdoQuery, в ней несколько полей. Все поля строковые. Перекидываю ее в Excel. Вычисляю максимальную длину строки в каждом поле, после нужно установить ширину колонок в Excel, чтобы было видно всю строку.


 
Dred2k ©   (2003-08-07 20:16) [3]

Вот тебе кусок кода.

for j := Low(tmpColNum) to High(tmpColNum) do begin
App.Columns[j + 1].ColumnWidth := FDBGrid.Columns[tmpColNum[j]].Width / 6;
App.Cells[1, j + 1].Value := FDBGrid.Columns[tmpColNum[j]].Title.Caption;
App.Cells[1, j + 1].HorizontalAlignment := DefExcelAlignment[FDBGrid.Columns[tmpColNum[j]].Title.Alignment];
App.Cells[1, j + 1].Font.Bold := True;
App.Cells[1, j + 1].Interior.Color := RGB(192, 192, 192);
App.Cells[1, j + 1].Borders.Color := RGB(0, 0, 0);
( я поленился, наверное ;)
Вот тебе кусок кода.

for j := Low(tmpColNum) to High(tmpColNum) do begin
App.Columns[j + 1].ColumnWidth := FDBGrid.Columns[tmpColNum[j]].Width / 6;
App.Cells[1, j + 1].Value := FDBGrid.Columns[tmpColNum[j]].Title.Caption;
App.Cells[1, j + 1].HorizontalAlignment := DefExcelAlignment[FDBGrid.Columns[tmpColNum[j]].Title.Alignment];
App.Cells[1, j + 1].Font.Bold := True;
App.Cells[1, j + 1].Interior.Color := RGB(192, 192, 192);
App.Cells[1, j + 1].Borders.Color := RGB(0, 0, 0);
end;


tmpColNum - массив, содержащий номера выводимых мной колоной DBGrid-а. Ширина колонок в Excel выставляется соразмерно ширине колонок грида. Коэффициент соразмерности можно при желании сформулировать и в общем виде (я поленился, наверное ;)).
Кроме ширины выставляются свойства первой строки на листе (заголовок). Лист - текущий.


 
Alex Bredin ©   (2003-08-08 10:44) [4]

я тож пытался так сделать, но потом сообразил, что Excel сделает это лучше))

//пробуем применить автоформат...
Range1:=Sheet.Range[Sheet.Cells[StartR, StartC],Sheet.Cells[StartR + Rows, StartC + Cols - 1]];
Range1.AutoFormat(XLFormat,True,True,True,True,True,True);

XLFormat-цел.число(я беру 1)-посмотри


 
Alex Bredin ©   (2003-08-08 10:50) [5]

а вообще над Range можно извращаться как хочешь, только перед этим включи запись макроса, а потом перенеси его текст в Delphi


 
gsvserg ©   (2003-08-08 11:43) [6]

Alex Bredin © (08.08.03 10:44)
Спасибо, попробовал твой метод - работает.
Только в Excel появляются линии под первой и предпоследней строками. Я так понял что это из-за xlFormat=1.
Всем спасибо.


 
Alex Bredin ©   (2003-08-08 14:53) [7]

понял ты неправильно.
Цитата из экселевского макроса:

Selection.AutoFormat Format:=xlRangeAutoFormatSimple, Number:=True, Font _
:=True, Alignment:=True, Border:=True, Pattern:=True, Width:=True

думаю все ясно и так


 
gsvserg ©   (2003-08-08 15:35) [8]


Range1.AutoFormat(1,True,True,true,false,True,True);
thanxxxx



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

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

Наверх




Память: 0.48 MB
Время: 0.027 c
3-1286
tria
2003-08-11 10:39
2003.09.01
Подскажите пож. как получить дату начала месяца?


1-1505
Злодей
2003-08-17 20:27
2003.09.01
Пуск


4-1719
andrey113
2003-06-30 21:58
2003.09.01
Как мне изменить содержимое StatusBar-а другой проги?


1-1433
lightix
2003-08-19 10:23
2003.09.01
Передать в TMenuItem все Items другого TMenuItem


14-1615
Anton
2003-08-13 10:24
2003.09.01
Ищу компоненты Delphi