Главная страница
    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
3-34340
Jaxtor
2003-04-22 10:44
2003.05.12
Команда вставки


1-34471
alexus
2003-04-29 13:55
2003.05.12
Глюки TImage?


6-34541
Марс Якупов
2003-03-14 17:57
2003.05.12
Простой код для отправки e-mail c прикрепленным файлом


1-34430
Oleg__
2003-04-28 17:07
2003.05.12
WordApplication


14-34596
djon007
2003-04-09 20:17
2003.05.12
Загрузить сайт?





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