Reports

图片(文件名)

使用此类为以下内容提供图片render_template().

参数

文件名字符串或pathlib.Path对象

文件名或路径

Markdown(文本, style=<Markdown样式> h1.font: .粗体: True 段落.空行之后: 1 无序列表.项目符号字符: 无序列表.空行之后: 1 强调.粗体: True 强调.斜体: True)

Markdown对象可以通过以下方式分配给单个单元格或形状myrange.valuemyshape.text它们接受Markdown格式的字符串,这将导致单元格中的文本相应地进行格式化。它们也可以在以下情况中使用mysheet.render_template().

注意

在macOS上,目前不支持格式设置,但像项目符号之类的功能仍然可以正常使用。

参数

文本字符串

Markdown语法中的文本

样式MarkdownStyle对象,可选

MarkdownStyle对象定义了文本的格式。

示例

>>> mysheet['A1'].value = Markdown("A text with *emphasis* and **strong** style.")
>>> myshape.text = Markdown("A text with *emphasis* and **strong** style.")

新增于版本0.23.0。

MarkdownStyle

MarkdownStyle定义了如何Markdown对象在Excel单元格或形状中呈现。首先实例化一个MarkdownStyle对象。打印它将显示当前(默认)样式:

>>> style = MarkdownStyle()
>>> style
<MarkdownStyle>
h1.font: .bold: True
h1.blank_lines_after: 1
paragraph.blank_lines_after: 1
unordered_list.bullet_character: •
unordered_list.blank_lines_after: 1
strong.bold: True
emphasis.italic: True

您可以覆盖默认值,例如,使**strong**文本变红而不是加粗,可以这样做:

>>> style.strong.bold = False
>>> style.strong.color = (255, 0, 0)
>>> style.strong
strong.color: (255, 0, 0)

新增于版本0.23.0。

格式化程序(func)

装饰器

渲染模板(模板, 输出, 工作簿设置=None, 应用程序=None, **数据)

此函数需要 xlwingsPRO.

这是对mysheet.render_template

将所有关键词参数的值写入output根据template以及其中包含的变量(Jinja 变量语法)。支持以下变量类型:

字符串、数字、列表、简单字典、NumPy数组、Pandas数据框、图片和Matplotlib/Plotly图表。

参数

模板:字符串或类似路径

指向您的 Excel 模板的路径,例如r'C:\Path\to\my_template.xlsx'

输出:字符串或类似路径

您报告的路径,例如r'C:\Path\to\my_report.xlsx'

工作簿设置:字典,默认值为 None

字典xlwings.Book参数的字典,详细信息请参阅:xlwings.Book。例如:book_settings={'update_links': False}.

应用程序:xlwings应用,默认为None

通过传入一个xlwings App实例,您可以控制报告运行的位置并配置诸如visible=False的内容。详情请参阅xlwings.App默认情况下,它会在当前活动的Excel实例中创建报告。

数据:kwargs

模板中使用的所有键/值对。

返回值

xlwings工作簿

示例

my_template.xlsx,在两个单元格中放入以下Jinja变量:{{ title }}{{ df }}

>>> from xlwings.reports import render_template
>>> import pandas as pd
>>> df = pd.DataFrame(data=[[1,2],[3,4]])
>>> mybook = render_template('my_template.xlsx', 'my_report.xlsx',
                             title='MyTitle', df=df)

如果有许多模板变量,可能需要先收集数据:

>>> data = dict(title='MyTitle', df=df)
>>> mybook = render_template('my_template.xlsx', 'my_report.xlsx', **data)

如果需要处理外部链接或密码,请按以下方式使用:

>>> mybook = render_template('my_template.xlsx', 'my_report.xlsx',
                             book_settings={'update_links': True,
                             'password': 'mypassword'}, **data)