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

Вниз

сортировка Excel   Найти похожие ветки 

 
Ncm   (2003-04-29 07:49) [0]

Нужно выполнить сортировку в екселевском файле по конкретному столбцу из Дельфи через ExcelApplication


 
GLUKAS   (2003-04-29 07:55) [1]

Запиши в Excel макрос с сортировкой.... посмотри что там ехсеl написал... процетируй в Delphi...


 
Ncm   (2003-04-29 08:08) [2]

так вот не получаеЦЦа :(
а вот такая идея, можно ли как нибудь эмулировать нажатие кнопки сотр в Excel"e из Delphi ?


 
GLUKAS   (2003-04-29 08:20) [3]

Можно эмулировать нажатие любой кнопки (Кроме Reset 8).

Нажать: keybd_event(Key,0,0,0);
Отпустить :keybd_event(Key,0,KEYEVENTF_KEYUP,0);
это для обычных клавш типа 123... абв...
Всякие Альты... - надо параметр указывать....


 
ncm   (2003-04-29 08:39) [4]

неее нам не надо кнопку на клавиатуре, надо нажать кнопку Sort (сортировки) в Excel"e


 
Babay   (2003-04-29 08:53) [5]

->так вот не получаеЦЦа :(
... не значит - нельзя. Сам гдето ошибаешся. Ищи.

GLUKAS дал тебе самый лучший способ.


 
GLUKAS   (2003-04-29 08:53) [6]

TExcelApplication.Range.Sort(...)


 
GLUKAS   (2003-04-29 09:01) [7]

TExcelApplication.Range.Sort(...)


 
Ncm   (2003-04-29 09:08) [8]

да эт понятно, там какая то фигня с параметрами все время в рантайм ругается на преобразование типов, пользую вот так:


Excel.Columns.Sort(Excel.Range["E3", EmptyParam], xlAscending, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, xlNo, 1, False, xlTopToBottom, EmptyParam, EmptyParam, EmptyParam, EmptyParam);


есть у вас работающий пример??


 
Mitechka   (2003-04-29 09:26) [9]

С TExcelApplication.Range.Sort есть беда... У меня такое ощущение, что там в диспинтерфейсе не тот номер метода указан :/

Вот примерчик как точно работает, надо только расскомментировать:
procedure TFormMain.ActionTestExecute(Sender: TObject);
var {XLAppl: Excel97.TExcelApplication;}
WB: Excel97._WorkBook;
WS: Excel97._WorkSheet; {Для раннего связывания с Excel97.pas}
var X,Sh: variant; {Для позднего связывания}
Row,Col: integer;
s: string;
begin
try {Открытие Excel ранним связыванием и насерание туда}
XLAppl.Connect;
XLAppl.Visible[0]:=true;
XLAppl.DisplayAlerts[0]:=false;
WB:=XLAppl.WorkBooks.Add(xlWBatWorkSheet,0);
WB.Activate(0);
WS:=WB.WorkSheets.Get_Item(1) as _WorkSheet;
for Row:=1 to 15 do
for Col:=1 to 10 do
begin
WS.Cells.Item[Row,Col].Value:=
chr(ord("A")+random(20))+" Row="+IntToStr(Row)+" Col="+IntToStr(Col);
end;
WS.Range["A1","J10"].Font.Color:=clRed;
WS.Range["A1","J10"].Font.Bold:=true;
ShowMessage("A?");
{Теперь по-позднему обращаемся}

{Способ 1: Поищем с самого начала, работают все 3, надо только снять комменты}
{try X:=GetActiveOleObject("Excel.Application");
except X:=CreateOleObject("Excel.Application");
end;
X.Visible:=true;
Sh:=X.Workbooks[1].WorkSheets[1];}

{Способ 2: Сначала возьмем интерфейс на книгу, а потом на лист}
{X:=OleVariant(XLAppl.Workbooks[1]);
Sh:=X.WorkSheets[1];}

{Cпособ3: Сразу возьмем интерфейс на лист}
Sh:=OleVariant(XLAppl.WorkBooks[1].WorkSheets[1]);

{Обращаемся по-позднему}
for Row:=1 to 15 do
for Col:=1 to 10 do
begin
s:=Sh.Cells[Row,Col];
Sh.Cells[Row,Col]:="!"+s;
end;
Sh.Range[Sh.Cells[3,1],Sh.Cells[5,10]]. Sort(Sh.Cells[1,1]);
ShowMessage("B!");

finally {Закрытие Excel}
XLAppl.Quit;
XLAppl.Disconnect;
end;
end;



 
alehan   (2003-04-29 14:13) [10]

Так вы, я не понял, разобрались или нет?

RowRange:=ISheet.Range["A1","A200"].EntireRow;
RowRange.Sort(ISheet.Range["A1","A200"], xlAscending,
EmptyParam, EmptyParam, xlDescending,
EmptyParam, xlAscending, xlNo, EmptyParam,
True, xlTopToBottom);



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

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

Наверх




Память: 0.46 MB
Время: 0.006 c
1-34447
Матка
2003-04-28 02:33
2003.05.12
TListBox - перемещение элементов


4-34640
DVM
2003-03-11 13:02
2003.05.12
Прозрачные подписи под значками SysListView32 на WinApi


3-34346
YDV
2003-04-18 13:50
2003.05.12
TOracleSession опасна для сервера !!!


3-34341
I.Ru.Ru
2003-04-22 08:38
2003.05.12
Можно ли сделать экспорт из формата db в формат dbf?


14-34556
Style
2003-04-23 10:16
2003.05.12
Конкурс на самый извратный Hello World :)





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