Skip to main content

将 excel 文件作为类似 excel 的表格嵌入到 sphinx 文档中。

项目描述

sphinxcontrib-excel 表

sphinxcontrib-excel-table 扩展是在 Sphinx 文档中将 excel 文件呈现为类似 excel 的表。

这个contrib的灵感来自sphinxcontrib-excel,它使用pyexcel和handsontable来做这项工作,但是sphinxcontrib-excel-table会改为使用openpyxl和handontable,主要是为了支持以下功能:

  • 合并单元格

  • 显示特定工作表

  • 在一张纸上显示特定部分

  • 在一张纸上显示特定的行

安装

您可以通过 pip 安装它:

$ pip install sphinxcontrib-excel-table

或从源代码安装:

$ git clone https://github.com/hackerain/sphinxcontrib-excel-table.git
$ cd sphinxcontrib-excel-table
$ python setup.py install

设置

将 sphinxcontrib.excel_table 添加到您的 conf.py 文件中:

extensions = ['sphinxcontrib.excel_table']

并且你需要将资源文件复制到你的sphinx源目录,如果你通过pip安装包,资源文件已经安装到你的python系统路径,你可以从安装路径复制它们。您可以通过以下方式获取安装路径:

python -c "import sphinxcontrib.excel_table; print sphinxcontrib.excel_table"

例如在 Mac 中:

$ INSTALLATION_PATH=/Library/Python/2.7/site-packages/sphinxcontrib/excel_table/
$ cp $INSTALLATION_PATH/resources/_templates/layout.html path/to/your/project/_templates/
$ cp $INSTALLATION_PATH/resources/_static/handsontable.full.min.js path/to/your/project/_static/
$ cp $INSTALLATION_PATH/resources/_static/handsontable.full.min.css path/to/your/project/_static/

或者您可以直接从源代码中复制资源文件。

用法

以下是在 sphinx 文档中显示 excel 文件的语法:

.. excel-table::
   :file: path/to/file.xlsx

这将转化为:

https://raw.githubusercontent.com/hackerain/sphinxcontrib-excel-table/master/sphinx_excel_table.png

如你所见,它支持合并单元格,这是这个contrib主要实现的目标,因为其他sphinxcontrib excel扩展不支持这个特性,也不方便实现。sphinxcontrib-excel-table 可以使用 openpyxl 库轻松完成此操作。

选项

这个 sphinxcontrib 提供以下选项:

文件(必填)

excel 文档的相对路径(基于文档)。请注意,由于 openpyxl 仅支持 excel xlsx/xlsm/xltx/xltm 文件,因此此 contrib 不支持其他旧的 excel 文件格式,如 xls。

.. excel-table::
   :file: path/to/file.xlsx

表(可选)

指定要显示的工作表的名称,如果没有给出,它将默认为 excel 文件中的第一个工作表。

.. excel-table::
   :file: path/to/file.xlsx
   :sheet: Sheet2

请注意,此 contrib 只能在一个 excel-table 指令中显示一张工作表,但您可以在不同的指令中在一个 excel 中显示不同的工作表。

行(可选)

指定一张表做显示的行范围,默认是在一张表中显示所有行,如果你使用这个选项,记得指定一个冒号分隔的范围。

.. excel-table::
   :file: path/to/file.xlsx
   :rows: 1:10

选择(可选)

选择定义从和到选择范围。如果未定义值,则将工作表中的整个数据放入表中。如果使用选择,它必须指定由冒号分隔的 from 和 to 范围。

.. excel-table::
   :file: path/to/file.xlsx
   :selection: A1:D10

溢出(可选)

防止表格在父元素之外重叠。如果选择了 'horizo​​ntal' 选项,那么如果父级的宽度比表格的宽度窄,表格将出现水平滚动条。默认为'horizo​​ntal',如果要禁用此功能,可以将此选项设置为false。

.. excel-table::
   :file: path/to/file.xlsx
   :overflow: false

colwidths(可选)

以像素为单位定义列宽。接受数字、字符串(将转换为数字)、数字数组(如果您想为每列单独定义列宽)或函数(如果您想在每次渲染时动态设置列宽)。默认值为未定义,表示宽度将由父元素决定。

.. excel-table::
   :file: path/to/file.xlsx
   :colwidths: 100

row_header(可选)

决定是否显示行头,默认为true,表示显示行头,可以设置为false禁用行头。

.. excel-table::
   :file: path/to/file.xlsx
   :row_header: false

col_header(可选)

决定是否显示 col 头,默认为 true,表示显示 col 头,可以设置为 false 禁用 col 头。

.. excel-table::
   :file: path/to/file.xlsx
   :col_header: false

更改日志

1.0.0

  • 将代码重构到一个文件夹

1.0.1

  • 将边距底部添加到 excel 表格 div

1.0.2

  • 添加 row_header 和 col_header 选项来控制是否显示表头

1.0.3

  • 修复 openpyxl 升级到 2.5.2 时的 bug

1.0.4

  • 添加 python 3 支持

1.0.6

  • 修复多次调用同一个文件将表分块时的错误

  • 在 Python 3 中运行时修复错误日期 NameError

  • 使用openpyxl新的merged_cells接口

1.0.7

  • 添加设置表格宽度的功能

项目详情


下载文件

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

内置分布

sphinxcontrib_excel_table_enhanced-1.0.7-py3-none-any.whl (163.1 kB 查看哈希

已上传 py3