|
|
|
Создание отчетов в Exel из шаблонов и динамических таблиц с данными
|
|||
|---|---|---|---|
|
#18+
Добрый день! Собственно - цель сабж. Реализовал нечто подобное на Delphi + MS Word. Скорость работы категорически не устраивает.. Поэтому решил выгружать данные в таблицу Exel и далее на основе этой таблицы генерировать отчет. Выглядеть это будет примерно так: Есть некий шаблон, где статичные данные обозначены например "Какой то текст [моя_переменная] еще текст". Статичные данные хранятся на другом листе в виде [моя_переменная] = трутуту. После нажатия кнопочки, фраза становится "Какой то текст трутуту еще текст" (количество переменных заранее неизвестно и может быть любым) . Все просто. Поэтому это делать не надо, я сам написал, в файле это есть =) Так вот, в тексте помимо статических переменных есть еще и "таблицы". На другом листе есть таблица "Данные", из которой шаблон и должен заполнятся. Первый набросок реализации сделал, но все упирается опять в скорость работы. Поэтому, есть вопросы: 1. Необходимо вставить из 1й таблицы данные 2й таблицы. В первой таблице находится лишь одна строка - (шаблон). Можно ли это сделать, не вставляя строки в 1ю таблицу, а сразу функцией pastle? Как ни пытался, у меня она затирает следующие строки шаблона. Поэтому пришлось поставить громоздкую вставку ячеек: Код: plaintext 1. 2. Каким способом это сделать быстро, желательно не поячеечно, а диапазоном? 2. В таблице с данными есть кнопочка фильтрации. Когда выбираются определенные данные по фильтру, видно, что Exel просто "скрывает" не подходящие строчки (номер строки выдает) Как в таком случае правильно обращатся к такому диапазону ячеек? Например, функция определения последнего элемента в таблице выдаст неверный результат, вернув в качестве l номер строки в не сорированной таблице: Код: plaintext 3. С объединенными ячейками операции copy \ pastle не проходят. Как это можно обойти? После вставки выполнять поячеечное Merge? опять же, слишком долго.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2010, 10:44 |
|
||
|
Создание отчетов в Exel из шаблонов и динамических таблиц с данными
|
|||
|---|---|---|---|
|
#18+
По первому пункту, можно так Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2010, 08:10 |
|
||
|
Создание отчетов в Exel из шаблонов и динамических таблиц с данными
|
|||
|---|---|---|---|
|
#18+
По третьему пункту непонятен вопрос. По второму можно так Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2010, 08:29 |
|
||
|
Создание отчетов в Exel из шаблонов и динамических таблиц с данными
|
|||
|---|---|---|---|
|
#18+
Ух.. спасибо большое! Радовался как младенец, увидев всего одну строчку в ответ на первый вопрос =) По третьему пункту - Есть две таблицы с одинаковым количеством колонок и строчек, но в таблице А есть объединенные колонки, а в таблице Б нет. Как вставить строчки из таблицы Б в А максимально быстро, избежав поячеечного присвоения? Пробую вот так, но такой код "разбивает" в таблице А все объединенные колонки: Код: plaintext 1. Пример прикрепил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2010, 13:07 |
|
||
|
Создание отчетов в Exel из шаблонов и динамических таблиц с данными
|
|||
|---|---|---|---|
|
#18+
думаю, можно так обойти объединение, правда, в два прохода Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2010, 13:59 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=36672268&tid=2178024]: |
0ms |
get settings: |
5ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
176ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 221ms |
| total: | 463ms |

| 0 / 0 |
