Skip to content

Latest commit

 

History

History
132 lines (90 loc) · 4.13 KB

index.rst

File metadata and controls

132 lines (90 loc) · 4.13 KB

sphinx-excel 简介

Sphinx 插入表格有几种方式, 这几种方式都不令人满意.

  • grid-table, 表达能力很强, 但是绘制起来很麻烦, 需要专门的编辑器插件辅助完成, 修改起来也不方便.
  • list-table, 没办法实现单元格合并, 也不支持环境嵌套.
  • csv-table, 可以从 CSV 文件渲染表格, 非常方便, 但是也不支持单元格合并以及环境嵌套.

因此我开发了 sphinx-excel, 可以非常方便的将 excel 文件渲染在 Sphinx 页面中, 并且支持单元格合并以及环境嵌套.

sphinx-excel 安装

可以使用 install 中命令安装 sphinx-excel.

sphinx-excel 使用

Hint

点此下载 <tables.xlsx> 本文当中使用的 excel 文件.

首先在 conf.py 文件中添加如下配置.

extensions = [
    'sphinxcontrib.excel',
]

然后就可以使用 excel 命令来渲染 excel 表格了, 如 render_table_code 的结果如 render_table_result 所示.

./tables.xlsx

excel 默认会渲染指定 excel 中的第一个 sheet, 并会把第一个 sheet 的名称显示在表格的标题, 如果你不想显示标题, 可以使用 :no-caption 参数, 如 render_table_without_caption_code 所示.

./tables.xlsx

./tables.xlsx

如果想使用其他标题, 可以使用 :caption: 参数指定标题, 如 render_table_with_caption_code 所示.

./tables.xlsx

./tables.xlsx

excel 兼容 Sphinx 内置 table 命令的所有参数, 比如, 可以使用 :align: 使表格居中显示, 如 render_table_align_center_code 所示.

./tables.xlsx

./tables.xlsx

如果一个 excel 中有多个 sheet, 可以使用 :sheet: 参数来指定渲染哪个 sheet, 如 render_table_with_sheet_code 所示.

./tables.xlsx

./tables.xlsx

值得注意的是, excel 默认会将第一行加粗, 表示该行是表头, 如果表头行数不为 1, 需要使用 :headers: 参数指定, 如 render_table_with_headers_code 所示.

./tables.xlsx

./tables.xlsx

excel 命令支持合并单元格的渲染, 并且支持环境嵌套, 如 render_table_merged_cell_code 所示, 其渲染结果如 render_table_merged_cell_result 所示.

./tables.xlsx

render_table_merged_cell_result 中可以看出表格里可以有任何命令, 可以有代码块, 可以有 :admonition:, 可以有列表, 也可以有公式. 甚至, 代码块是可以被引用的, 如 code_demo 所示.