![]() |
#1 |
Участник
|
![]()
Господа программисты!
1. Подскажите как увидеть все методы COM Excel; 2. Есть ли метод, возвращающий кол-во страниц, в excel - файле |
|
![]() |
#2 |
Гость
|
1 MSDN
2 сделай в ComExcelDocument_RU что-то типа int test() { COM workSheets, int ret; if (m_comDocument) { workSheets = m_comDocument.worksheets(); ret = workSheets.count(); } return ret; } Последний раз редактировалось lagr221374; 01.02.2006 в 17:12. |
|
![]() |
#3 |
Участник
|
|
|
![]() |
#4 |
Участник
|
1 Что такое MSDN, можно поподробней
2 можно ли получить кол-во страниц, в excel - файле через свой класс, например static void test(Args _args) { COM Excel; com workBook; str _fileName; ; _fileName = "C:\\test.xls"; excel = new COM("Excel.Application"); workBook = excel.WorkBooks(); workBook.Open(_fileName); } а вот дальше... |
|
![]() |
#5 |
Участник
|
2. Коллекция worksheets это количество листов (т.е. закладок лист1 лист2 и т.д.) страницы - это, наверное, PageBreaks. Вот нашел поиском в гугле:
Excel VBA: Determine Number of Pages to be Printed. Count of Printed Pages Before Printing |
|
![]() |
#6 |
Участник
|
|
|
![]() |
#7 |
Участник
|
Для грамотного пользования COM Excel (Word, Access и пр.) очень полезно разобраться в объектной модели используемых приложений. Для этого, как уже говорили, можно использовать MSDN. Проще всего для изучения использовать VB (VBA). Для поиска функций, нужных непосредственно вам, есть такой прием: Начинаете запись макроса в Excel (Word), руками делаете то, что хотите получить, а потом в редакторе VBA смотрите сгенерированный код и разбираетесь. При необходимости используете в Axе...
|
|
![]() |
#8 |
Moderator
|
Всецело поддерживаю odr!
Быстрое начало знакомства с объектной моделью Excel может выглядеть примерно так: 1. Запускаем Excel (для наглядности лучше, чтобы была открыта только голая новая Книга1). 2. Сервис -> Макрос -> Начать запись -> OK. 3. Вводим в ячейку A1 цифру 1. 4. Кнопка "Остановить запись" на тулбаре (или Сервис -> Макрос -> Остановить запись). 5. Alt+F11 (или Сервис -> Макрос -> Редактор Visual Basic). 6. В редакторе в обозревателе проектов: VBAProject(Книга1) -> Modules -> Module1 (дабл-клик). 7. В тексте открывшейся нашей только что записанной процедуры кликнули слово Range и нажали F1. 8. И понеслись по прекрасно организованному HELP-у (иех, когда ж так вкусно будет в Аксапте? ![]() 9. Если хотите увидеть модель в красивом виде, то введите в начало процедуры строку: Dim e As Excel.Application 10.Кликнете в ней слово Excel и нажмите F1 - откроется сочная картинка "Microsoft Excel Objects". 11.И, немного освоившись, можно еще в редакторе нажать F2 (или View -> Object Browser) - тоже очень полезная вещь. |
|
![]() |
#9 |
Moderator
|
Буквально несколько слов вдогонку.
Поищите у себя на компьютере файлы по маске MSOWC*.* MSOWCDSS.CHM - это описание пользовательского интерфейса SpreadSheet-а, т.е. что юзер может ручками поделать (причем, описание на русском языке в русской версии). MSOWCVBA.CHM - VBA-шный справочник по программированию; там есть красивая картинка "Spreadsheet Object Model" (это уже, как обычно, на английском). Можно поразглядывать также другие найденные файлы. P.S. Гы! Хотя я, наверное, несколько перепутал темы... в смысле влез со SpreadSheet-ом в Excel-ный топик - ну да ладно ![]() Последний раз редактировалось Gustav; 02.02.2006 в 21:07. |
|
![]() |
#10 |
Участник
|
искала ответ на 2ой вопрос, но тут его не нашла
![]() в итоге в класс ComExcelDocument_RU добавила метод возвращающий количество СТРАНИЦ на указанном листе: Цитата:
int getPageCnt(int _workSheet)
{ COM comWorkSheet, comHPageBreak; COM pageBreakRange; int totalPageBreakCount; ; comWorkSheet = this.getWorkSheet(_workSheet); comHPageBreak = comWorkSheet.hPageBreaks(); totalPageBreakCount = comHPageBreak.count(); return totalPageBreakCount+1; } |
|
![]() |
#11 |
Moderator
|
Цитата:
Сообщение от Davido
в итоге в класс ComExcelDocument_RU добавила метод возвращающий количество СТРАНИЦ на указанном листе
![]() (не сочтите за издёвку, правда любопытно) |
|
![]() |
#12 |
Участник
|
Кол-во страниц для некоторых является своеборазной гарантией целостности документа. Со времен бумаготворчества осталось.
С уважением, itfs. |
|
![]() |
#13 |
Moderator
|
Цитата:
Сообщение от itfs
Кол-во страниц для некоторых является своеборазной гарантией целостности документа. Со времен бумаготворчества осталось.
Но для этого не нужно задействовать HPageBreaks.Count, проще и надежнее поручить это делать самому Ёкселю - как-нибудь вот так: Код: COM wks; // Worksheet .............. COM::createFromObject( wks.PageSetup() ).CenterFooter('Стр. &P из &N'); |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|