Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.02.22;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.005 c
15-1230014400
Германн
2008-12-23 09:40
2009.02.22
Глюки обоняния


2-1231421470
SAVA
2009-01-08 16:31
2009.02.22
tdatetime


15-1230264209
Slider007
2008-12-26 07:03
2009.02.22
С днем рождения ! 26 декабря 2008 пятница


2-1231430084
Pavelkq
2009-01-08 18:54
2009.02.22
DrawGrig - исчезающие картинки.


8-1190199525
gtr86
2007-09-19 14:58
2009.02.22
Вывод текста на канве





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