我的任务是自动化由多个团队使用的报告。每个团队都有自己的程序,如何生成他们需要交付的报告。
我可以自动化报告,但这需要很多时间,因为我需要研究他们的每一个过程,然后测试他们。
当团队需要更新过程时,就会出现此问题。如果我将执行该调整,则可能需要一周的时间将其部署到客户无法接受的实时服务器上。
我想的是为用户创建界面,以便他们可以配置自己的报告,但是他们需要考虑的复杂性太多了。如果团队的需求只是用这个值过滤field1,用这个值过滤field2,那就太好了。他们会做各种各样的事情,比如合并值、应用条件等等。这是一个多步骤的团队,并不是所有的团队都有相同的步骤。
我能使用的最接近的工具是django的报表生成器。但它只能在一定程度上满足要求。
发布于 2017-11-22 14:06:24
以编程方式转换Excel工作表并不是一条出路。我将全面审查整个过程,并使用数据库作为报告的数据源。
要么让用户通过适当的应用程序将源数据直接输入数据库,要么将Excel数据导入数据库(在一个自动化的过程中)。
一旦数据在数据库中,您就可以使用数据库查询将数据放入正确的形状。这比以编程方式操作Excel工作表中的单元格容易得多。基于这些查询,您可以使用(商业)报表生成器创建报表。现代报表生成器可以创建各种格式的报表,包括屏幕预览、PDF、HTML、RTF甚至Excel。
远离这个Excel的污点。
Excel的一个主要缺点是数据没有预定义的结构。用户可以以他们想要的任何方式输入数据,从高度组织到完全混乱。这使得以编程方式处理它变得非常困难。另一方面,数据库有预定义表、预定义列、预定义列类型和表之间的预定义关系,这使得实现自动化变得更加容易,因为您有坚实的工作基础。虽然Excel工作表可以分布在不同的文件系统和文件夹之间,并且可以具有随机名称,但数据库通常位于中心和唯一的位置,并通过预定义的连接字符串访问。
Excel工作表可能非常复杂,但不能伸缩。我是专业开发软件的。我的许多数据库项目(包括前端应用程序)都是从客户那里获得的Excel表单开始的。他们非常擅长制作复杂的纸张。但他们已经到了这样一个地步,那就是纸张变得过于复杂,几乎无法再进化了。主要的问题是复杂的数据集几乎总是包含1到n的关系,这些关系只能在电子表格中非常糟糕地再现。电子表格基本上只适用于平面数据。此外,表示和结构在Excel中是相同的。但是,通常您需要对同一数据进行不同的评估和表示。这里是具有适当应用程序(前端)和报表生成器的数据库(后端)发挥作用的地方。
发布于 2017-11-29 09:22:46
根据团队的多样性和目标的核心,需要考虑的方法是:
希望这能给你另一种思考问题的方法。
https://softwareengineering.stackexchange.com/questions/361099
复制相似问题