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

Вниз

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

 
dr_creigan   (2008-12-07 21:07) [0]

такой вопрос стоит: где достать примеры работы с Excel 2003 (можно и 2007)), но этот постарее, да и полегче)? мне нужно:
1)открыть эксель
2)создать в программе таблицу (вместе с нужным форматированием)
3)закинуть в эксель
4)сохранить в нужный файл

сам эксель должен быть "невидимым", то есть, если надо его показать, то будет спецкнопка...

Были раньше подобные исходники у мня для работы с вордом, но куда-то делись....((


 
Andy BitOff ©   (2008-12-07 21:25) [1]

> dr_creigan   (07.12.08 21:07) [0]
> такой вопрос стоит: где достать

Не поверишь, но в интернете.
http://www.google.ru/search?q=%EF%F0%E8%EC%E5%F0%FB+%F0%E0%E1%EE%F2%FB+%F1+Excel+%2BDelphi&num=30


 
YurikGL ©   (2008-12-08 09:29) [2]

http://code.progler.ru/view/363


 
clickmaker ©   (2008-12-08 12:31) [3]

\Delphi\Ocx\Servers\ExcelXP.pas ?


 
dr_creigan   (2008-12-08 18:13) [4]

Ок. это сделал. теперь такая задача - в таблице несколько столбцов и строк. нужно теперь это все дело отсортировать по значениям какого-либо столбца. Как с этим справиться? желательно через OLE


 
clickmaker ©   (2008-12-08 18:26) [5]

запиши макрос, потом переведи на Дельфи


 
dr_creigan   (2008-12-08 18:58) [6]

то есть? какой макрос? - мне нужно знать только какое свойство и что ему передавать.... на любом языке подойдет(кроме асма=)) )...


 
clickmaker ©   (2008-12-08 19:09) [7]

> то есть? какой макрос? - мне нужно знать только какое свойство

вот и узнаешь. В экселе выбери Сервис - макросы - начать запись. Потом щелкни кнопку сортировки, останови макрос и зайди в его код. Там все свойства и параметры увидишь.


 
dr_creigan   (2008-12-08 19:10) [8]

ок.. счас испробуем


 
dr_creigan   (2008-12-08 19:15) [9]

получилось:

Application.Run "111"
   ActiveWorkbook.Worksheets("Лист1").Sort.SortFields.Clear
   ActiveWorkbook.Worksheets("Лист1").Sort.SortFields.Add Key:=Range("A1"), _
       SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
   With ActiveWorkbook.Worksheets("Лист1").Sort
       .SetRange Range("A1:A8")
       .Header = xlNo
       .MatchCase = False
       .Orientation = xlTopToBottom
       .SortMethod = xlPinYin
       .Apply
   End With

Что отсюда брать? Sort? а значение тогда какое?


 
dr_creigan   (2008-12-08 19:55) [10]

или вот так

   Range("A1:E12").Sort Key1:=Range("B2"), Order1:=xlAscending, Header:= _
       xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
       DataOption1:=xlSortNormal


 
dr_creigan   (2008-12-08 20:37) [11]

по идее должна быть такая строка.... Но вылазит сообщение об ошибке.(Код на с++, но там не шибкая разница),

   AnsiString kl=AnsiString("A2:E")+10;
Variant Sort = App.OlePropertyGet("Range", kl.c_str()).OleFunction("Sort");

объясните, что не нравится компу и как это исправить.


 
dr_creigan   (2008-12-09 12:44) [12]

ау!


 
ваще   (2008-12-09 19:42) [13]

> dr_creigan   (08.12.08 20:37) [11]
> как это исправить.

Не поверишь, но в интернете ;)
http://www.google.ru/search?hl=ru&newwindow=1&q=%D1%81%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0+%2BExcel+%2BDelphi&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=&aq=f&oq=


 
dr_creigan   (2008-12-13 21:38) [14]

Не поверишь, но не пашет((


 
blackman ©   (2008-12-13 23:58) [15]

Delphi/Pascal » MsOffice
http://articles.org.ru/cn/?c=92


 
palva ©   (2008-12-14 00:36) [16]


> объясните, что не нравится компу и как это исправить.

Комп сам должен объяснить что ему не нравится.
Sort это метод некоторого COM объекта.
К нему надо обратиться, с теми же параметрами которые вы получили в записанном макросе. То есть вы должны написать App.ActiveWorkbook. и дальше продолжить цепочку до Sort. Получится объект. Вот этому объекту вы должны присвоить указанные свойства и вызвать метод Apply.


 
palva ©   (2008-12-14 00:39) [17]


> Sort это метод некоторого COM объекта.

Здесь я не то написал. Sort это свойство рабочего листа, которое имеет тип некоторого объекта.


 
dr_creigan   (2008-12-14 12:50) [18]

оке. вроде разобрался, но 1 прикол - когда в делфе запускаю прогу - ошибка от делфы(как от отладчика) вылазит. Когда без нее(не в ней) - все путем


 
YurikGL ©   (2008-12-14 21:28) [19]

какая ошибка и на какой строчке?


 
dr_creigan   (2009-01-11 21:59) [20]

Лан.., тут тоже разобрался))

Теперь другой вопрос стоит - как взять из листа Excel значение целого массива значений, а не 1 только ячейки??? Моё предположение таково:

Variant __fastcall TForm1::fromExcelMassive(TRect Er)
{
try{
Variant Cell1,Cell2,Rang;
Cell1 = Sh.OlePropertyGet("Cells",Er.Left,Er.Top);
Cell2 = Sh.OlePropertyGet("Cells",Er.Right,Er.Bottom);
Rang = Sh.OlePropertyGet("Range", Cell1,Cell2);
Rang.OlePropertyGet("Value");
return Rang;
}catch(...) {;}
}

Если здесь правильно, то как дальше? - массив типа Variant как преобразовать в массив другого типа, например, String?

Тут на сях написано, но разница с делфой невелика... - Напишите на делфе - я тож пойму...


 
sniknik ©   (2009-01-11 23:35) [21]

один вопрос - одна ветка. заголовок ветки должен кратко отражать суть вопроса.
читайте правила форума.



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

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

Наверх




Память: 0.51 MB
Время: 0.012 c
6-1199546330
maxistent
2008-01-05 18:18
2009.02.22
Обновление событий...


2-1231861783
RUBEY
2009-01-13 18:49
2009.02.22
Исчезающая форма


15-1230101717
Кое кто
2008-12-24 09:55
2009.02.22
Может ли книга в 320 стр. стоить 61 рубль??


2-1231673189
Pavel
2009-01-11 14:26
2009.02.22
Выполнение SQL-скрипта в Delphi


1-1207677282
Тыщ
2008-04-08 21:54
2009.02.22
Как выравнить код и данные на границу 16 байт?