Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.12.2010, 10:19   #1
Andrey85
Пользователь
 
Регистрация: 29.07.2010
Сообщений: 79
По умолчанию Сортировка в Excel

Здравствуйте. Подскажите пожалуйста. Как можно сделать сортировку в Excele. Я использую компонент ExcelApplication. Есть столбец с датами и мне по ним нужно упорядочить данные. Но по столбцу полностью нельзя, дальше идут другие данные. А мои даты находятся в именованном диапазоне date_otr. Кто может подскажите,пробовал делал макрос, смотрел код. Попытался изобразить на Delphi не получилось, ругается. Вот код
Код:
ExcelApplication1.Range['date_otr',EmptyParam].Sort((ExcelApplication1.Range['date_otr',EmptyParam]),xlAscending,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,xlNo,EmptyParam,EmptyParam,xlTopToBottom,xlPinYin,EmptyParam,EmptyParam,EmptyParam);
Заранее спасибо.
Andrey85 вне форума Ответить с цитированием
Старый 07.12.2010, 19:57   #2
dolbanov
Пользователь
 
Регистрация: 18.11.2009
Сообщений: 16
По умолчанию

Компонентами оффиса не пользуюсь=) Но вот код примерный=)

Код:
uses ComObj;
var
XLApp,Sheet:Variant;
begin
XLApp:= CreateOleObject('Excel.Application'); //инициализация экселя
XLApp.Workbooks.Add(-4167); //создаем новую книгу или открываем
XLApp.Visible:=true; //делаем эксель видимым
XLApp.Workbooks[1].WorkSheets[1].Name:='Имя'; //присваеваем листу книги имя
Sheet:=XLApp.Workbooks[1].WorkSheets['Имя']; //для удобства работы с листом чтоб каждый раз не печатать XLApp.Workbooks[1].WorkSheets['Имя'].  ...
//Ну и сама сортировка (большая часть данных берется из маркроса самого экселя)
// sheet.Range[Sheet.Cells[1,1],Sheet.Cells[10,10]] - задает диапазон который будем сортировать
//Key1:=sheet.Range[Sheet.Cells[3,3],Sheet.Cells[10,3]] - задает столбец по которому идет сортировка
//с остальными параметрами поэксперементируй либо просто возьми из маркроса экселя
sheet.Range[Sheet.Cells[1,1],Sheet.Cells[10,10]].Sort 
(Key1:=sheet.Range[Sheet.Cells[3,3],Sheet.Cells[10,3]], Order1:=1, Header:=0, OrderCustom:=1, MatchCase:=False, Orientation:=1, DataOption1:=0);
end;
dolbanov вне форума Ответить с цитированием
Старый 08.12.2010, 09:15   #3
Andrey85
Пользователь
 
Регистрация: 29.07.2010
Сообщений: 79
По умолчанию

Спасибо! Я наверное перепишу все через OLE.
Andrey85 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сортировка, суммирование и прочие возможности excel breddred Microsoft Office Excel 11 20.05.2010 15:58
Сортировка в EXCEL reznik Microsoft Office Excel 9 01.03.2010 17:01
Сортировка ячейки Excel по цвету шрифта из Delphi dixieswing Помощь студентам 0 03.08.2009 16:57
Сортировка в Excel zetrix Microsoft Office Excel 0 30.10.2006 19:20