Skip to main content

适用于 Microsoft Excel 建模器和 mod 操作的终极工具包。

项目描述

PyPI - Python 版本 GitHub 发布(按日期最新) 特拉维斯 (.com)

超大玩具:

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 集群上并执行以处理大数据

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

xltoy-0.1.9.tar.gz (18.7 kB 查看哈希

已上传 source

内置分布

xltoy-0.1.9-py3-none-any.whl (21.1 kB 查看哈希

已上传 py3