|
|
|
Визуальный генератор отчётов в Excel
|
|||
|---|---|---|---|
|
#18+
ExConverter позволяет значительно упростить разработку отчётов, в которых данные выводятся в Microsoft Excel. Внешний вид теперь можно просто «нарисовать» непосредственно в Excel'е, используя при этом богатые возможности последнего. Исходные данные должны быть представлены в формате XML. Подробнее - Здесь В продолжение темы http://www.sql.ru/forum/actualthread.aspx?tid=672503 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2009, 13:11 |
|
||
|
Визуальный генератор отчётов в Excel
|
|||
|---|---|---|---|
|
#18+
Нет времени разбираться, что это такое. Но в свое время делал генератор отчетов в Excel через его родной XML формат который он сам понимает (т.е. генерил отчет на основе шаблона который создавался в Excel по принципу - заполняй строчки данными с таким же форматированием как в шаблоне) Так как использовался SAX парсер - скорость формирования действительно была огромная. Как недостаток XML формат EXCEL не поддерживает вставку картинок, а в отчете это иногда нужно. Ну и известное ограничение на кол-во записей на листе. В общем кому что нужно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2009, 15:14 |
|
||
|
Визуальный генератор отчётов в Excel
|
|||
|---|---|---|---|
|
#18+
Здесь принцип тот же самый - генерится "родной" XML парсером на основе XSLT шаблона. Но "фишка" не в этом, а в том, что этот шаблон получается из обычного Excel'евского файла.Весь внешний вид "рисуется" непосредственно в Excel,е,ручками в XSLT залезать не надо вообще. У нас некоторые разработчики XSLT не знают (они знают много других вещей), но красивые отчёты по данной технологии делают за пару часов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2009, 16:06 |
|
||
|
Визуальный генератор отчётов в Excel
|
|||
|---|---|---|---|
|
#18+
Ну то есть картинок у вас тоже нет. XSLT вы используете здесь совершенно напрасно, для данного случая очень прожорливая технология по памяти и времени. Рискну предположить, что возможен только один набор данных (датасет), нет ни вложенных отчетов, не отчетов на одном листе с разными detailами, отсутствуют передаваемые дополнительные параметры и вычисляемые во время работы отчета пользовательские выражения, нет page heder & page footer (т.е. тот что на каждой странице), нет page break (хотя это легко можно реализовать), наверняка косяк с подведением итогов в группах (я предполагаю что обычное суммирование все же есть), отсутствует возможность не печатать группы по условию и пр. и пр. Извините (если с чем-нибудь не угадал, написано просто навскидку). Если более половины из того что я перечислил правда - то это просто детская поделка, не заслуживающая никакого внимания - она интересна только тем людям, что ее создали. С уважением Idid ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2009, 17:34 |
|
||
|
Визуальный генератор отчётов в Excel
|
|||
|---|---|---|---|
|
#18+
Idid, Рискните. Перед критикой неплохо было бы хотя бы ознакомиться с предметом. Не стоит судить всех разработчиков по себе. Не все лепят "детские разработки". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2009, 21:12 |
|
||
|
Визуальный генератор отчётов в Excel
|
|||
|---|---|---|---|
|
#18+
Если не учитывать варварско поведение Idid'а, и отбросить эмоции, то >XSLT вы используете здесь совершенно напрасно, для данного случая очень прожорливая >технология по памяти и времени. OLE работает горадо медленне, и требует клента на каждом компьютере. Для WEB непригодна. Формиовать "Родной" XML из программы бысрее, но убивает на корню идею визуального создания отчётов. В моей программе внешний вид просто "рисуется" в Excel'е безо всякого программирования. >Рискну предположить, что возможен только один набор данных (датасет), нет ни >вложенных отчетов, не отчетов на одном листе с разными detailами, Всё есть, уровень вложенности не ограничен >отсутствуют передаваемые дополнительные параметры и вычисляемые во время работы >отчета пользовательские выражения, Это, как и суммы, сейчас отсутствует. Появится в седующей версии, последняя сейчас в стаии отладки. нет page heder & page footer (т.е. тот что на каждой странице), нет page break (хотя это легко можно реализовать), >Нет проблем, всё прекрасно работает. > отсутствует возможность не печатать группы по условию и пр. и пр. Бесполезная возможность. Если, например, не надо печатать заголовок при отсутствии данных, а выводить строку об их отстутствии - то данную вможность легко реализовать имеющимися у меня методами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2009, 21:39 |
|
||
|
Визуальный генератор отчётов в Excel
|
|||
|---|---|---|---|
|
#18+
>OLE работает горадо медленне, и требует клента на каждом компьютере. Для WEB непригодна. >Формиовать "Родной" XML из программы бысрее, но убивает на корню идею визуального создания >отчётов. В моей программе внешний вид просто "рисуется" в Excel'е безо всякого программирования. А мир у нас делится исключительно на OLE и XSLT. Я не ставлю под сомнение ваш выбор генерации XML файла в формате Excel. Только вот XSLT тут не причем. У этой технологии есть один очень жирный плюс - это стандарт. И когда вы пишите программу в которой что-то может меняться др. программистом не нужно выдумывать свой язык, проще использовать XSLT. Но когда эта часть чисто внутренняя, ее никто не меняет и никто не видит - зачем там нужен XSLT? Давайте разберем - вы из некого набора данных сначала генерируется XML - при этом расходывается памяти ну минимум в два раза больше, чем занимает набор данных, после чего этот поток грузится в парсер который реализует DOM (с другими XSLT не работает) - объем памяти необходимый парсеру в 3 раза больше чем XML файл занимает на диске. Плюс мы не можем сказать какие данные понадобятся отчету - т.е. грузим сразу все без разбора. Мы потратили кучу времени и отъели в 6 раз (как минимум) больше памяти чем занимают первоначальные данные - вопрос зачем, потому что XSLT - это сейчас модно? Есть другой ответ - я знаю XSLT - почему бы мне сюда ее не впендюрить? У нас главный критерий для программиста - А у меня это работает!!! У вас же это работает - значит вы правы! Количество требований к нормальной отчетной системе занимает как минимум несколько листов, я же предложил 8 - элементарных пунктов, у вас не реализовано 4 - так что я остаюсь при своем мнении (хотя о каком отчете вообще можно говорить без сумм - не понятно) Вы наверное много сил и времени потратили чтобы написать то, что работает в данный момент. Я не хотел вас обидеть. Просто для того чтобы вашу систему могли использовать другие, нужно выйти на некий функциональный уровень (я даже не имею ввиду коммерческое распространение). Некоторые зарубежные авторы оценивают трудоемкость создания системы как 1/3 - для внутреннего использования и 2/3 - для распространения. Мне кажется, что вы и первую 1/3 еще не прошли. Извините, если мое мнение не совпадает с вашим. С уважением Idid ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2009, 10:08 |
|
||
|
Визуальный генератор отчётов в Excel
|
|||
|---|---|---|---|
|
#18+
Хм, вполне разумные замечания. XSLT выбран по следующим причинам: 1. Универсальность. Существует много бесплатных парсеров, из них можно выбрать подходящий. 2. Лёгкость преобразования из XML. Да, XML занимает очень много памяти, требует много ресурсов, но это стандарт, от него никуда не деться. Сейчас практически любая система автоматизации умеет выгружать данные в XML. 3. Самый сложный пункт, придётся его расписать подробнее. Основной задачей при разработке системы была возможность визуального "рисования" отчётов. Это главное. Простейший пример я выкладывал Здесь В результате компиляции должен получиться некий код, который на основе данных создаст "родной XML EXCEL". Встал вопрос, на каком языке должен быть этот код? PL\SQL? PHP? C++? :-) В результате было принято решение выбрать XSLT, как наиболее универсальный и лёгкий для внедрения. Насчёт производительности - в рабочей системе в среднем 70% времени занимает процесс открытия файла Excel'ем, и только 30% - процесс преобразования. Да, система бесплатна и распространяется с исходниками. Последние пришлось долго приводить в порядок, чтобы было не стыдно показать людям. Очень много времени заняла доработка всяких мелочей и написание документации, которую не скушно будет читать. На ближайшее будущее: это первый релиз, в него попали только более-менее отлаженные вещи. Суммы и блоки, выводящиеся в случае отсутствия данных, сейчас проходят обкатку на одной информационный системе -))) Ещё раз хочу обратить внимание,что технология позволяет легко реализовать кучу встроенных возможностей Excel'я без кодирования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2009, 11:54 |
|
||
|
Визуальный генератор отчётов в Excel
|
|||
|---|---|---|---|
|
#18+
Спасибо за интересную идею генерации XSL шаблона. Переписал под себя, изменил синтаксис меток, добавил использование формул,формул массива технология WSH (JScript) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2009, 07:10 |
|
||
|
Визуальный генератор отчётов в Excel
|
|||
|---|---|---|---|
|
#18+
Облагородил тестовый пример: Добавил формирование оглавления (ссылки на другие листы) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2009, 08:12 |
|
||
|
Визуальный генератор отчётов в Excel
|
|||
|---|---|---|---|
|
#18+
Автоматическое получение XSLT шаблона из SpreadSheetML, RTF (на основе алгоритма ExConverter ). Получение RTF (алгоритм RepoRTF ). Вертикальное выравнивание объединенных ячеек. Технолгия WSH (JavaScript) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2009, 15:25 |
|
||
|
Визуальный генератор отчётов в Excel
|
|||
|---|---|---|---|
|
#18+
Большое спасибо badikprg за интересную идею. Рад, что мои наработки кому-то пригодились. Сейчас пытаюсь решить следующую проблему: Хочу, чтобы в шаблоне почти не думая можно было использовать любые формулы эксэля. На примере сумм пока сформулировал следующие требования: 1. Осуществлять процесс суммирования должен Excel 2. Итоговое значение должно собирать суммы из блоков более низкого уровня. 3. Блоков может быть несколько видов 4. Блоки могут находиться на разных уровнях вложенности, столбцы могут находиться на разных позициях, не обязательно друг под другом. 4. Между двумя суммируемыми блоками может находиться блок с несуммируемыми значениями. Всё идёт к тому, чтобы, например выражение =СУММ(R6C2) в шаблоне заменялось на выражение =СУММ(R6C2:R7C2;R11C2;R15C2:R17C2) в готовом эксэлевском файле ( строка 2 раза повторилась при выводе 1-го блока, 1 раз при выводе 2-го блока, 3 раза при выводе 3-го блока) Для этого надо высчитывать позицию текущей строки с помощью XSLT..... Над этим сейчас и бьюсь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2009, 16:12 |
|
||
|
Визуальный генератор отчётов в Excel
|
|||
|---|---|---|---|
|
#18+
Удобно работать с представлением листа Настройка -> Общие ->Стиль сылок R1C1 1.Обрати внимание на формулы массива Excel (в моем примере лист L{l2} (2) ячейка R12C3 {+==SUM(R7C:R[-1]C*((R7C[-1]:R[-1]C[-1]=1)+(R7C[-1]:R[-1]C[-1]=4)))} (суммировать если значение из предыдущей колонки равно 1 или 4) Все просто создаем колонку (ширина 0) и прописываем значени, которое считает формула. Описание в тегах {== ...} и в {= ...} применять для красоты и в особо сложных случаях {+=SUM(R[-{$count(row)}]C:R[-1]C)} (переменная высота блока) 2.Если уровень подсумирования простой например всегда есть подитоги и итог то сумму итога делим на два (исключаем влияния сумм под итогов) итоговая формула Excel =СУММА(R3C:R[-1]C)/2 (c 3 строки до строки перед формулой) 3. Формулы внутри строки также можно делать через Excel =R1C2*RC[-1] (значение предыдущей колонки умножить на ставку в ячеке R1C2 (B2)) PS до 22.09.09 я в отпуске (вызвали на час) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2009, 18:42 |
|
||
|
Визуальный генератор отчётов в Excel
|
|||
|---|---|---|---|
|
#18+
ToDante, Решил найти альтернативу TeraXLReport (c 2004 выручала, но надоела привязка к Excel XP) Вопрос В п.3.2. "Использование ExConverter.doc" написано "и в Excel'e лист должен называться $sheet$". Правильно ли я понимаю, что каждый файл шаблона (сделанный в Excel) должен иметь ЕДИНСТВЕННЫЙ лист с именем $sheet$? т.о. в моем случае из ОДНОЙ таблицы с исходными данными (делал 6 шаблонов TeraXLReport, но в одной книге), необходимо сделать 6 шаблонов ExConverter. ЗЫ. Вообще огромный респект за прогу без привязки к Офису и реестру ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2011, 09:54 |
|
||
|
Визуальный генератор отчётов в Excel
|
|||
|---|---|---|---|
|
#18+
ToDante, по поводу суммирования. может поможет шаблон из TeraXLReport. Там под блоки выделен столбец справа справа. Блоки определены как Level0, level1, level2... и их концовки со слешем в обратном порядке /level2,/level1,/level0 Суммирование по блокам обозначается sum после переменной, т.о. чем какое количество вложенных блоков, такое же и количество sum через запятую без пробела ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2011, 10:20 |
|
||
|
Визуальный генератор отчётов в Excel
|
|||
|---|---|---|---|
|
#18+
К сожалению, разработку я забросил из-за недостатка времени. Сейчас понимаю, что вместо PHP надо было использовать PERL - объём кода сократился бы раз в 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2011, 11:42 |
|
||
|
|

start [/forum/topic.php?fid=31&msg=36116589&tid=1534799]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
169ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 14ms |
| total: | 275ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...