适用于 Microsoft Excel 建模器和 mod 操作的终极工具包。
项目描述
超大玩具:
Microsoft Excel 建模器和模型操作的终极工具包。
名字
XLtoy是一个从exel到py概念的双关语,但是这里的p似乎是多余的,xlto(p)y变成了XLtoy,更有趣。
描述
Excel 是进行分析活动、模型设计、报告等的好工具,他的直观性是它在世界范围内如此普及的主要原因。另一方面,它的广泛传播使它参与了部署过程的其他阶段。一般来说,当 excel 在涉及 IT 部门的流程中越界时,它的表现不是很好,我的意思是:变更管理、错误处理、大数据、并行执行、跨平台、云部署等等。大部分工作委托给 IT 部门,该部门致力于解决这些缺点。
XLtoy 框架可以帮助这一方面,它可以读取、解析、比较、验证、管理更改并运行使用 Microsoft Excel 编写的开箱即用的复杂模型。到目前为止,并非所有功能都已准备就绪,但开发计划如下所示。
该工具对于编写、共享、维护和部署用 Excel 编写的模型的用户非常有用。
- 它可以:
- 读取数据和公式,并将它们存储为标准格式,如 json 或 YAML。
- 解析公式并识别方程之间的相互依赖关系。
- XLtoy 可以很好地处理多种模型,例如:
- 验证模型
- 基于规则的模型
- 财务模型
- 预测模型
在协作环境中,例如一个变更管理工具,可以节省大量时间和金钱。开发操作(od mod-ops)同样需要一种工具来识别每次交付时的唯一模型、数据和更改。模型差异可以使用句法或语义算法准确识别差异在哪里以及在哪里。拓扑分析可以帮助识别公式之间的相互依赖关系。
这个怎么运作
分析整个工作簿,太难了,而且通常没用,这种方法迫使编写不可预测的低效算法并且不起作用,因为我们通常只对整个工作簿的子集感兴趣。因此,主要思想是确定感兴趣区域的子集,定义为工作区域,并将 XLtoy 仅关注这些区域。工作区域是用户定义的命名范围,它们遵循一些模式和地址算法。因此,只要对现有工作表进行最少的更改,解析器就可以处理它并产生有用的信息。如果您可以应用一些简单的规则 ,您就可以开始了!所有其他操作都是使用命令行开箱即用完成的,以促进自动化和与所有平台的兼容性。
安装
强烈建议使用 virtualenv:
>pip3 install virtualenv
>python3 -m venv XLtoy_pyenv
>source XLtoy_pyenv/bin/activate
>pip install xltoy
# Or from source:
>git clone https://github.com/glaucouri/XLtoy.git
>cd XLtoy/
>python setup.py install
现在可以通过xltoy cli 命令访问所有功能。
$ xltoy --help
Usage: xltoy [OPTIONS] COMMAND [ARGS]...
Options:
--help Show this message and exit.
Commands:
collect
diff
文档
$ xltoy collect --help
Usage: xltoy collect [OPTIONS] FILENAME
Options:
--timeit Print out how many times it takes for the task
--yaml Print out the yaml hierarchical view
--json Print out the json hierarchical view
--gml_graph PATH save to a file the topology of models in gml format
--data Collect only data, it will ignore formulas
-v, --verbose verbose output (repeat for increased verbosity)
--add_fingerprint Enable fingerprint metadata informations, under section
xltoy
--parsed Parse formulas and use this version instead of excel
syntax
--tag TEXT Add a tag attribute to fingerprint eg: --tag v1.0
--description TEXT Add a description attribute to fingerprint eg:
--description model 2020Q1
--help Show this message and exit.
$ xltoy diff --help
Usage: xltoy diff [OPTIONS] FILENAME1 FILENAME2
Options:
--timeit Print out how many times it takes for the task
--data Collect only data, it will ignore formulas
--relative Areas are handled as relative, each starts from row1,col1
-v, --verbose verbose output (repeat for increased verbosity)
--nofingerprint Ignore fingerprint metadata, under section xltoy
--parsed Parse formulas and use this version instead of excel syntax
--json Print out in json format instead of default YAML
--help Show this message and exit.
按照教程深入了解所有功能
框架描述
XLtoy 框架由许多子包组成,它们都可以通过 cli sub 命令访问。
-
xltoy.collector:它读取一个 excel 工作簿并提取所有需要的信息,遵循此处描述的规则。这意味着方程、命名或匿名的外生数据和参数。结果可以表示为分层 yaml 或 json。此功能解决了与变更管理、版本控制、模型治理和差异操作相关的问题。
-
xltoy.parser:它可以解析所有收集到的方程,以便理解每个依赖项,并将每个依赖项转译为可读且可工作的 python 代码。公式之间的所有关系都存储在键:值结构中的依赖图中,使用每个方程的助记符名称。这种数据结构允许我们对整个方程组进行拓扑分析
时间线
该框架将在某些步骤中完成,我想分享发布平面,因为随着第一个版本的发布,我将需要反馈、用例和测试人员。
0.1版:第一个工作版本:
- 它定义了工作规则
- 使用 py3.6 到 py3.8 进行全面测试
- 收集器可以读取数据、公式,并且可以将整个工作簿显示为 yaml 或 json。
- diff也适用于数据和公式,它可以比较 2 个工作簿或它的 yaml 或 json 表示。
- 可以标记带有指纹选项的模型(例如文件的 md5)
0.2 版:解析器功能:
- 解析器可以理解 excel 公式(可能不是所有语法)
- 在内存图形表示中具有方程之间的所有关系。
- 可以找到给定方程的所有前任和后继。
- 模型可以导出为图形或 python 代码。
- python版本的执行可以在笔记本或独立环境中完成。
0.3版:执行器功能:
- 数据可以存储为 pandas DataFrame
- 模型可以绑定到外部数据。绑定功能。并且可以在庞大的数据集上运行。
0.4版:大数据功能:
- 模型可以分布在 Spark 集群上并执行以处理大数据
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。