Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Excel


Страницы:   1 2

dr_creigan ©   (2008-12-07 21:07:00) 

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

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

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


sniknik   (2009-01-11 23:35:00) [1]

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


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

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

Теперь другой вопрос стоит - как взять из листа 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?

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


YurikGL   (2008-12-14 21:28:00) [3]

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


dr_creigan   (2008-12-14 12:50:00) [4]

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


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


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

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


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


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

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


blackman   (2008-12-13 23:58:00) [7]

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


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

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


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

> 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-09 12:44:00) [10]

ау!


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

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

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

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


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

или вот так

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


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

получилось:

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:10:00) [14]

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


clickmaker   (2008-12-08 19:09:00) [15]

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

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


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

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


clickmaker   (2008-12-08 18:26:00) [17]

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


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

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


clickmaker   (2008-12-08 12:31:00) [19]

\Delphi\Ocx\Servers\ExcelXP.pas ?


YurikGL   (2008-12-08 09:29:00) [20]

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


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо