跳转到主要内容

Excel表格读取库。

项目描述

关于xlref

xlref 是一个有用的库,可以通过简单的引用(例如,A1(RD):..:RD)捕获Excel工作表中非空单元格的表格,即使其确切位置事先未知。

此代码受到了pandalone库中的xleash模块的启发。开发类似工具的原因是为了拥有一个更小的库,以便安装并提高读取.xlsx文件的性能。

安装

使用root权限安装它

$ pip install xlref

或下载最新的git版本,然后使用root权限

$ python setup.py install

教程

一个典型的例子是捕获一个带有“标题”行的表格并将其转换为字典。下面的代码展示了如何做到这一点

>>> import xlref as xl
>>> _ref = 'excel.xlsx#ref!A1(RD):RD[%s]'
>>> ref = xl.Ref(_ref % '"dict"')
>>> ref.range  # Captured range.
B2:C28
>>> values = ref.values; values  # Captured values.
{...}
>>> values['st-cell-move']
'#D5(RU):H1(DL)'

从上面的代码中,您可以注意到字典的所有值都是引用。为了递归地解析它,有两种选择

  1. 在“dict”之前添加“recursive”过滤器

    >>> values = xl.Ref(_ref % '"recursive", "dict"').values
    >>> values['st-cell-move'].tolist()
    [[1.0, 2.0, 3.0],
     [4.0, 5.0, 6.0],
     [7.0, 8.0, 9.0]]
    
  2. 使用“dict”过滤器的额外功能对字典的值应用过滤器

    >>> values = xl.Ref(_ref % '{"fun": "dict", "value":"ref"}').values
    >>> values['st-cell-move'].tolist()
    [[1.0, 2.0, 3.0],
     [4.0, 5.0, 6.0],
     [7.0, 8.0, 9.0]]
    

您还可以定义并使用您自己的自定义过滤器,如下所示

>>> import numpy as np
>>> xl.FILTERS['my-filter'] = lambda parent, x: np.sum(x)
>>> xl.Ref('#D5(RU):H1(DL)["my-filter"]', ref).values
45.0

另一种方法是直接使用过滤结果的的方法,如下所示

>>> xl.Ref('#D5(RU):H1(DL)["sum"]', ref).values
45.0

项目详情


下载文件

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

源代码分发

xlref-1.2.4.tar.gz (21.1 kB 查看散列)

上传时间 源代码

构建分发

xlref-1.2.4-py2.py3-none-any.whl (17.6 kB 查看散列)

上传时间 Python 2 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面