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

Вниз

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

Наверх





Память: 0.47 MB
Время: 0.006 c
14-34563
KA-87
2003-04-20 21:11
2003.05.12
Где лучше хоститься?


3-34323
Sergey
2003-04-21 13:24
2003.05.12
Midas событие ReconcileError ?


3-34377
supersan
2003-04-21 16:40
2003.05.12
Получение значения поля только что вставляемой записи


14-34610
Ренат
2003-04-24 15:50
2003.05.12
Кнопка power на клавиатуре


3-34367
kingdom2000
2003-04-19 19:14
2003.05.12
DBCtrlGrid и Image





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