![]() |
#1 |
Участник
|
Экспорт в Excel, раздвигание строк
Может кто решал эту задачу..
Есть задача экспортировать данные в Excel в определенный шаблон. С самим механизмом экспорта проблем нет, но шаблон предусматривает отображение строк документа, после заголовка отчета. После строк должен идти подвал, с навороченным оформлением и посторонними графическими объектами (картинками). Так вот, чтобы красиво выводить данные из строк документа не вижу никакого способа кроме как раздвигать строки (или есть еще варианты?).. SysExcelApplication вроде такого делать не умеет, а напрямую через COM не знаю с чего подступиться ![]() Где-то была тема где было описано как вызывать макросы в Excel книге, но это крайний вариант, так как Excel у пользователей может быть разный и по разному реагировать на макросы... |
|
![]() |
#2 |
Участник
|
Пару вопросов по отчетам Excel
Quote:
Originally Posted by Владимир Максимов
![]() Чтобы уточнить синтаксис какой-либо команды непосредственно в Excel, используют встроенный в Excel макрорекодер. Т.е. запись всех действий пользователя, совершаемых в Excel. Пункт меню Сервис -> Макрос -> Начать запись.
Выполняешь все необходимые действия, далее останавливаешь запись, открываешь макрос на редактирование и смотришь, какая именно команда была использована. |
|
![]() |
#3 |
Участник
|
А как передать эту команду из Х++ через COM?
В макросе написано: X++: Rows("14:14").Select Selection.Insert Shift:=xlDown |
|
![]() |
#4 |
Участник
|
|
|
|
This post has been rated by: alvares (1). |
![]() |
#5 |
Участник
|
\Classes\ComExcelDocument_RU\insertRow
__________________
aLL woRk aNd nO JoY MAKes jAck a dULL Boy |
|
![]() |
#6 |
Участник
|
Если не ошибаюсь, Excel сам может раздвигать строки, но при одном условии: ячейки не должны быть объединены. Если отчёт нарисован объединёнными "клеточками", то придётся извращаться.
|
|
![]() |
#7 |
Участник
|
я решил так, думаю смысл понятен
X++: str getBookMark(int _fromCol, int _fromRow, int _toCol, int _toRow) { return strFmt("%1:%2", ComExcelDocument_RU::numToNameCell(_fromCol, _fromRow), ComExcelDocument_RU::numToNameCell(_toCol, _toRow)); } void setRowHeight(str _s, int _strLen, int _row) { if(strlen(_s) > _strLen) { rowHeight = strlen(_s) / _strLen + 1; rowHeight = 15 * rowHeight; } else rowHeight = #RowHeight; excellDocument.setRowHeight(getBookMark(1, _row, #endColumn, _row) ,rowHeight); } Last edited by AxPr-r; 16.04.2012 at 12:47. |
|
![]() |
#8 |
Moderator
|
|
|
![]() |
#9 |
Участник
|
Задача была такая - вставить в середину сложного шаблона несколько строк из документа.
Соответственно, строк может быть несколько и заранее мы не знаем сколько, чтобы под это дело зарезервировать место в шаблоне... Поэтому и нужно было раздвинуть ![]() |
|
![]() |
#10 |
Участник
|
|
|
![]() |
#11 |
Участник
|
Где-то на форуме пробегал список Enumerations из Excel Object Model Reference,
X++: ... #define.xlDown(-4121) |
|
![]() |
#12 |
Axapta
|
|
|
|
This post has been rated by: alex55 (1). |
Tags |
ax2009, excel |
«
Previous Thread
|
Next Thread
»
|
![]() |
||||
Thread | Replies | |||
Удаление группы строк из Excel? | 15 | |||
Экспорт в Excel | 1 | |||
Экспорт в Excel. Проблема с '\n' | 12 | |||
Свертка строк при выводе из Аксапты в Excel | 20 | |||
Экспорт в Excel через WorkBooks.OpenText() | 2 |
Thread Tools | Search this Thread |
Display Modes | |
|