Excel如何用于生成最终用户可自定义的报告.需要根据某些查询从oracle/SQL Server数据库中获取数据,并且需要在Excel中生成报告.
我想根据他不断变化的需求为最终用户(具有Excel和数据库查询编写知识)设计一个解决方案,以便他在今天修改报表要求时不依赖开发团队.
我之前使用C#和Crystal报表设计了这种类型的应用程序,这需要三件事:1.具有数据库查询的Crystal报表模板2.过滤条件(将从数据库中读取数据).3.动态用户控制(例如文本框,下拉等)生成组件根据过滤条件控制所需(由最终用户在数据库表中定义).
如果最终用户熟悉Crystal报表设计,那么他可以设计自己的水晶报表模板以及仅嵌入在水晶报表中的数据库查询.我的软件根据该报告模板的数据库中的定义生成动态用户控件.这些筛选条件将传递给Crystal报表中定义的查询,以便根据其筛选条件生成所需的报表.这有助于他今天在餐饮日报告相关的变化要求.
现在我想用Excel设计类似的解决方案,即用Excel模板替换Crystal报表模板.我最初的提议是这样的,我将用excel模板替换水晶报告,该模板具有很少的固定参数和少量变量报告参数(根据查询将来自数据库),其余的我将使用我之前的解决方案.
我不知道
我知道这些事情可以使用宏编程(在Excel报表模板中定义)来完成,但这对最终用户来说并不容易,我希望有一个简单的通用解决方案,我可以在我的c#程序中实现一次,以便最终用户(没有什么优秀的知识)可以根据自己的需要设计/修改报告,而不会像我之前的解决方案(c#和Crystal报告)那样在编程方面遇到太多麻烦.
提前感谢您节省宝贵的时间,支持和指导.
问候.Gopal Parikh.
小智 2
这将是一个非常具有挑战性的项目,主要是因为 Excel 并不是像 Crystal Reports 那样真正的报表工具。我在 Excel 中创建了大量报告,其中每一份都是定制解决方案,根据用户需求量身定制。在 Excel 中创建通用报告工具需要对 Excel 功能集进行大量“填补”。
如何在Excel中定义报表参数?
Excel 中确实没有报表参数,至少与 Crystal Reports 中的报表参数不同。如果您计划使用 C# 和 VSTO,则可以创建一个表单(或使用任务窗格)供用户输入参数。您还可以尝试使用 VBA/VSTO 并使用本机 Excel 数据对象(QueryTables、ListObjects 和 PivotTables),这可能为您提供一些预构建的参数选项。如果您希望用户能够创建自己的报告,那么您需要创建某种报告向导来帮助他们设置和管理这些“参数”。
如何生成多页报告(当数据库返回多条记录的数据集时)?
当结果要显示在多页上时,如何像水晶报表那样对报表进行分页?
如果我理解正确的话,这两个都是类似的问题。您在 Crystal Reports 中看到的所有分页功能(例如,“将部分放在一起”、“重复标题”等)都需要在 Excel 中进行编码,因为它们根本不存在。因为 Excel 确实没有任何类似于 Crystal Reports 分组的功能,所以我认为这将是一个具有挑战性的问题。如何将 Excel 中的区域定义为在新页面上打印时“保持在一起”的区域?如何在上一页的末尾添加空格(Excel 通常会尝试缩放大小)?对象模型就在那里,而且看起来当然是可行的,只是非常耗时且困难。
如何在Excel中定义报表页眉和页脚区域以显示在多页报表上?
这实际上并不太难,因为您可以使用页眉和页脚对象。但是,您必须手动更新这些值,因为您通常无法获得“动态”信息(没有公式、没有数据对象等)。如果您需要更大的灵活性,您还可以使用“在顶部重复的行”。
一般来说,Excel 确实不适合此类工作。Excel 可以是一个功能强大的报告工具,但通常需要非常熟悉 Excel 的人员才能使用,而且某些功能即使对于高级用户(无需编写大量 VBA)也无法实现。