ExcelReport - программа для создания отчетов в MS Excel 97(или для более высоких версий).
Однажды мне поступил заказ написать несколько отчетов с выводом в Excel из Access. При этом построитель отчетов и 2 отчета уже были готовы, и оставалось только заполнить соответствующие таблицы (данные для отчетов, а также полей и форматирования брались из таблиц). К сожалению, построитель отчетов был невизуальным, что вызвало большие трудности в работе. Когда все было готово, я подумал: а не написать ли программу, которая генерирует отчеты в Excel, беря за основу XLS-файлы, разработанные как шаблоны отчетов. Я сделал несколько макетов и понял, что такое вполне возможно. И тогда я написал полнофункциональный генератор отчетов, использующий Excel как для дизайна отчетов, так и для их вывода.
Большинство существующих генераторов отчетов используют собственный формат разработки и генерации отчетов. Это всем известные Crystal Reports, QuickReport, ReportBuilder. Наиболее удобным в использовании, сочетающим простоту и мощь, я бы назвал FastReport. Не буду скрывать, что многие идеи я почерпнул оттуда.
Я также нашел конкурирующую программу - AfalinaSoft Active XL Report. Несмотря на то, что эта программа имеет больше возможностей, она, на мой взгляд, имеет не слишком наглядный дизайнер отчетов. Моя программа, я думаю, больше подойдет тем, кто привык к band-ориентированным построителям отчетов с визуализацией свойств секций и полей.
Программа состоит из двух частей: дизайнера отчетов и ActiveX модуля генерации. Дизайнер и модуль генерации используют ActiveX Data Objects для доступа к базам данных. При этом возможна поддержка всех форматов данных, которые поддерживает ADO (напрямую или через ODBC). Начиная с версии 1.2.0 также возможен доступ к данным через DAO.
Дизайнер отчетов реализован в MS Excel и представляет собой шаблон, на основе которого создаются XLS-файлы шаблонов отчетов. Отчеты могут быть многостраничными, с широкими возможностями форматирования.
Модуль генерации может быть использован в любом языке программирования, поддерживающем ActiveX (VB/VBA, C++,Object Pascal). Он полностью невизуальный. Модуль имеет класс Report, который используется для генерации, печати и сохранения отчетов.