11.11.2016, 14:44 | #1 |
Участник
|
высота Range ячеек Excel через COM объекты
Добрый день!
Есть такая проблема: мне надо определять высоту ячейки в Excel через Com объекты. В общем случае у меня выбирается какой-то диапазон ячеек, который принадлежит заданному bookmark. Если в этом bookmark всего одна строка, то все отрабатывает и я получаю высоту строчки, но если там, к примеру, 10 строк, то ничего не возвращает (что логично). Реализация сейчас: X++: void execute(str _bookmark) { COM currentRange, currentRange1; COMVariant rowHeightVariant; real rowHeight; int rowsNumber, row; int i; currentRange = mapSection.lookup(_bookmark); currentRange1 = currentRange.rows(); //row = currentRange.row(); rowsNumber = currentRange1.count(); rowHeightVariant = currentRange1.RowHeight(); rowHeight = rowHeightVariant.double(); this.fillData(_bookmark); document.insertBookmarkAfterRow(currentRange,currentRow); currentHeight += rowHeight; currentRow += rowsNumber; } |
|
12.11.2016, 00:00 | #2 |
Участник
|
Добрый день!
Зачем это нужно, на листы делите? Что необходимо получить в конечном результате? Сделать это можно, например, через X++: ComExcelDocument_RU.findRange Последний раз редактировалось Товарищ ♂uatr; 12.11.2016 в 01:06. |
|
14.11.2016, 10:12 | #3 |
Участник
|
Цитата:
Да, хочу делить отчет на листы и нужно знать, когда высота превышает допустимую величину. Сейчас попробую это реализовать, спасибо. |
|
14.11.2016, 15:53 | #4 |
Участник
|
COM Excel умеет сам разбивать на листы, там надо какое то свойство выставить, что то вроде pagebreak = auto или вроде того, задать параметры печати - А4 и т.п. Дальше можно посмотреть куда ексель вставил pageBreak и вставить туда PageFooter и PageHeader. Если не ошибаюсь, пример использования можно посмотреть в AX2009 в отчётах по ОСам - МБ-2, МБ-4 - RassetReport семейство классов в общем. В случае OpenXML эти значения взять неоткуда - там приложения нет которое всё само корректно посчитает, поэтому и приходится считать самому - такое ощущение что Вы переписываете OpenXML под COM, очень код напоминает. Интересно было бы узнать зачем.
|
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|