12.04.2012, 15:29 | #1 |
Участник
|
Экспорт в Excel, раздвигание строк
Может кто решал эту задачу..
Есть задача экспортировать данные в Excel в определенный шаблон. С самим механизмом экспорта проблем нет, но шаблон предусматривает отображение строк документа, после заголовка отчета. После строк должен идти подвал, с навороченным оформлением и посторонними графическими объектами (картинками). Так вот, чтобы красиво выводить данные из строк документа не вижу никакого способа кроме как раздвигать строки (или есть еще варианты?).. SysExcelApplication вроде такого делать не умеет, а напрямую через COM не знаю с чего подступиться Где-то была тема где было описано как вызывать макросы в Excel книге, но это крайний вариант, так как Excel у пользователей может быть разный и по разному реагировать на макросы... |
|
12.04.2012, 16:13 | #2 |
Участник
|
Пару вопросов по отчетам Excel
Цитата:
Сообщение от Владимир Максимов
Чтобы уточнить синтаксис какой-либо команды непосредственно в Excel, используют встроенный в Excel макрорекодер. Т.е. запись всех действий пользователя, совершаемых в Excel. Пункт меню Сервис -> Макрос -> Начать запись.
Выполняешь все необходимые действия, далее останавливаешь запись, открываешь макрос на редактирование и смотришь, какая именно команда была использована. |
|
12.04.2012, 17:00 | #3 |
Участник
|
А как передать эту команду из Х++ через COM?
В макросе написано: X++: Rows("14:14").Select Selection.Insert Shift:=xlDown |
|
12.04.2012, 17:23 | #4 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: alvares (1). |
12.04.2012, 17:24 | #5 |
Участник
|
\Classes\ComExcelDocument_RU\insertRow
__________________
aLL woRk aNd nO JoY MAKes jAck a dULL Boy |
|
16.04.2012, 12:19 | #6 |
Участник
|
Если не ошибаюсь, Excel сам может раздвигать строки, но при одном условии: ячейки не должны быть объединены. Если отчёт нарисован объединёнными "клеточками", то придётся извращаться.
|
|
16.04.2012, 12:40 | #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); } Последний раз редактировалось AxPr-r; 16.04.2012 в 12:47. |
|
16.04.2012, 15:07 | #8 |
Moderator
|
|
|
16.04.2012, 15:56 | #9 |
Участник
|
Задача была такая - вставить в середину сложного шаблона несколько строк из документа.
Соответственно, строк может быть несколько и заранее мы не знаем сколько, чтобы под это дело зарезервировать место в шаблоне... Поэтому и нужно было раздвинуть |
|
16.04.2012, 16:08 | #10 |
Участник
|
|
|
16.04.2012, 17:42 | #11 |
Участник
|
Где-то на форуме пробегал список Enumerations из Excel Object Model Reference,
X++: ... #define.xlDown(-4121) |
|
16.04.2012, 17:47 | #12 |
Axapta
|
|
|
|
За это сообщение автора поблагодарили: alex55 (1). |
Теги |
ax2009, excel |
|
Похожие темы | ||||
Тема | Ответов | |||
Удаление группы строк из Excel? | 15 | |||
Экспорт в Excel | 1 | |||
Экспорт в Excel. Проблема с '\n' | 12 | |||
Свертка строк при выводе из Аксапты в Excel | 20 | |||
Экспорт в Excel через WorkBooks.OpenText() | 2 |
|