像Excel这样的电子表格工具通常用于创建简单(而不是那么简单)的业务应用程序。这个穷人的IDE,数据库和BI工具实际上在大型企业中非常普遍,所以价格可能不是使用电子表格的唯一理由。
在此帖子中,与使用通用编程语言的传统方法相比,我将列出使用Excel Ex Ex Ex Ex Ex Ex for软件开发的优缺点。我还将介绍一支小型电子商店,这是一种新的电子表格应用程序,这些应用程序可以减轻现代电子表格的缺点,如错误信息和代码复制。 CubeWeaver可用作独立的多用户电子表格应用程序或作为编译器,它产生全功能Excel模型。
典型的计算机程序从用户收集输入数据,处理它并将结果呈现回用户。典型的电子表格型号具有输入纸张,用于收集数据,执行计算和输出表的中间纸张以显示结果。
仅基于Excel公式的图灵机示例,这意味着可以使用计算机实现的任何算法也可以在Excel中实现。这种实现的实际便利性和效率可能因一项任务而异。
电子表格和编程语言可以用于创建软件。让我们比较这两个软件开发方法:
直观且易于使用:电子表格旨在由非专业人员使用。最终用户可以在几分钟内为电子表格模型添加一个小功能,而不是打开变更请求,并等待IT部门以理解和实施它。这可以是许多情况下的游戏更换器。
透明和静态的状态易于调试:您通常必须使用断点和步骤通过程序来查找错误。它很难,因为程序在每行代码后的程序变化。电子表格的状态更透明,并且在计算完成后不会改变。只需查找具有错误值的第一个单元格以查找错误。
反应性和声明性计算:我们只是定义公式并输入输入值,并且系统将其自身按正确的顺序计算依赖的单元格。这一概念最近在UI开发中流行,一直是电子表格的基础。
标准化的用户界面:许多用户刚刚用于电子表格。会计师似乎在电子表格条款中思考。即使是基于Java的软件甚至通常看起来像会计部门的错误Excel克隆。
弱键入和半结构化数据模型:电子表格使用三维无型小区数组作为数据模型。这比非结构化文本更好,但比标准化和强类型的关系数据库结构更糟糕。用户可以始终将字符串保存到数字单元格中。标题和值单元之间没有区别。表之间的依赖关系以非明显的方式存储在VLOOKUP函数的参数内(并且如果添加或删除列,则断开)。
高码复制:干燥(不要重复)原则在程序员之间证明自己很好。编程语言提供了许多方法(如循环,功能或泛型),以降低代码复制。电子表格公式仅从细胞复制到细胞。这听起来很方便,一开始,但这些模型变得非常难以支持时间。
可扩展性不良:大型车型只是停止在某些时候工作。该文件变得非常缓慢。在许多用户尝试同时访问它时,大部分时间都会锁定在网络共享的文件。
缺少界面交互:电子表格不会让您更改数据显示的方式。例如,无法创建预编程逻辑,例如按一个按钮触发。
以下是解决缺点的创新列表,同时试图维护电子表格的好处:
多维数据模型广泛用于商业智能和OLAP系统。简而言之,数据存储在多维立方体的单元格内,边缘由业务对象的名称标记:
应用程序不显示整个多维立方体,而是对应于滤波器的选定组合的2D切片。它与Excel的枢轴表相同。
关系BI系统通常使用雪花架构来存储多维数据。立方体由事实表实现,边缘标签以及一些附加数据存储在维度表中。在CubeWeaver中,立方体称为工作表,在多维数据集边缘的标签称为列表项。
多维数据模型为电子表格带来了结构。列表项实际上是标准关系表,具有强类型列和参照完整性。 CubeWeaver工作表单元也是强烈的打字。用户无法将字符串保存到数字单元格中。
多维工作表的单元格通过工作表的每个维度的列表项的组合唯一引用。在上面的图像中,值935是独特的引用:自行车,2020,巴黎。
在CubeWeaver中,列表项具有ID和标题字段。单元格参考使用ID,上面的小区参考文献可能如下所示:[产品:23,年:2020,城市:24]
此类参考资料比F783等序数电子表格引用更稳定。创建新列表项时会生成唯一的新ID。这意味着ID 23仍将引用“自行车”,即使在其之前插入新产品。
电子表格利用VLookup函数来在表之间执行简单的JOIN操作。如前所述,Vlookup加入易碎和透明度。
CubeWeaver支持列表项之间的显式关系。项目可以通过引用属性引用其他项目。它与关系表之间的外键参考一样。城市列表可以有一个“国家”属性,这指出了来自国家名单的物品。用户将看到每行城市列表的下拉列表:
每个CubeWeaver公式指定应用公式的工作表的一部分。效果区域被指定为工作表的每个维度的一组项目。
下面示例的公式适用于衡量“销售单位”,而是全年“2021”和所有产品。结果区域以蓝色突出显示工作表:
“效果区域”概念消除了复制公式的必要性。公式将自动应用于新列表项,因为那些添加到列表中。
除了标准单元格格式(如数字,日期和文本),CubeWeaver还支持某些交互式单元格格式,如按钮,复选框和下拉列表。
CubeWeaver公式也不仅仅是计算单元格值的方法。公式可用于动态地改变单元格的其他属性,如格式化,颜色和小区访问级别(隐藏,只读,可编辑)。
因此,例如,一张纸中的复选框或拾音员可以在另一种纸张中显示,隐藏或锁定单元。
单元按钮可用于使用单元格值创建相当复杂的操作。每个按钮都有一组更新操作附加到它。每个更新由目标单元格范围和公式组成,该公式是针对每个目的地单元执行一次。
将值从一个列表项复制到另一个列表项(f.e.从下一年到之前)
Excel是标准的商业建模和报告格式。例如,大多数银行不会以任何其他格式接受的商业模式而不是Excel。结果,它的受欢迎程度也成为诅咒。与编程语言不同,过去30年来电子表格没有变化(1979年在1979年在1979年的Visicalc介绍了现代电子表格工作的原则,并于1985年在波音考卡中)。
编程语言可以如此之快地发展,因为编译器将它们转换为机器代码(如X86),反过来是一个行业标准,并且不会随着时间的推移而变化。与编译器一样,CubeWeaver可以将多维计算模型转换为纯电子表格文件。用户可以通过为每个工作表创建导出视图来指定尺寸的顺序和方向。之后,.xlsx导出对话框可用于将数据和公式导出到标准Excel工作簿。
莲花加入(1991年发布,1996年停止)是第一个多百合电子表格。如今,具有类似概念的应用程序称为企业绩效管理软件。我使用的工具相对复杂且昂贵,使他们对小型公司和项目不实惠。除此之外,大多数此类工具都专门用于某些任务,如预算或财务预测。 CubeWeaver是一种尝试为多维建模创建一个简单,价格合理的和用户友好的通用工具。以下是当前设计目标和非目标的非目标列表:
该模型的长期可维护性:功能,有助于避免模型内部重复。公式依赖性的追踪(跟踪先例/依赖)。将文档添加到公式的方法,如评论或描述。
通用工具:无功能,仅适用于某些应用领域。 所有特殊功能都可以在系统内部建模。 可扩展性:开发人员可以使用REST API,用户定义的函数和可能在稍后通过加载项接口添加功能。