Главная страница
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.49 MB
Время: 0.009 c
3-34350
dimonf
2003-04-22 14:05
2003.05.12
Народ, подскажите плиз по пакету DevExpress!


7-34629
bers
2003-03-19 11:55
2003.05.12
имя пользователя


3-34340
Jaxtor
2003-04-22 10:44
2003.05.12
Команда вставки


6-34537
Winni
2003-03-07 07:37
2003.05.12
Как перехватить щелчок по гипертекстовой ссылке в WebBrowsere?


4-34657
Syon
2003-03-06 22:41
2003.05.12
Как вернуть фокус своей форме ( но! из-под Кваки!!! )