Форум: "Начинающим";
Текущий архив: 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