创建和格式化表
创建表
要创建表,您可以:
使用不带参量的
Table
构造函数创建一个空的mlreportgen.ppt.Table
对象。然后将TableRow
对象追加到Table
对象,将TableEntry
对象追加到TableRow
对象。使用
Table
构造函数创建一个空的mlreportgen.ppt.Table
对象,并指定列数。
创建一个
Table
对象,其行和列由您在构造函数中指定的值填充。您可以指定二维数值数组或数字、字符向量和Paragraph
对象的二维元胞数组。您还可以使用这些类型的值的组合。
有关通过将表行追加到空表来创建表的示例,请参阅
。有关通过在 Table 对象构造函数中指定值来创建表的示例,请参阅 mlreportgen.ppt.TableRow
。mlreportgen.ppt.Table
格式化表
您可以为表的整体外观指定表样式名称,例如,对交替行进行阴影显示的表。您可以将 StyleName
对象的 Table
属性设置为表样式的名称。
模板中的表样式
PowerPoint® 模板必须包含表样式的实例,以便您在 PPT API 程序中使用它。要列出模板中的表样式的实例,请使用 getTableStyleNames
。
import mlreportgen.ppt.* %% Create a new presentation and open it ppt = Presentation("myPresentation"); open(ppt); %% Print out all table styles and %% their universally unique identifiers (UUID) pptStyles = getTableStyleNames(ppt); fprintf("Available table styles:\n"); for i = 1:length(pptStyles) fprintf(" Style name: ""%s""\n", pptStyles{i,1}); fprintf(" UUID: ""%s""\n", pptStyles{i,2}); end %% Close the presentation close(ppt);
返回的每种样式都有一个名称和一个 ID。您可以将名称或 ID 与 Style
属性一起使用。当名称可能因地区不同而变化时,请使用 ID。
Available table styles: Style name: 'Medium Style 2 - Accent 1' UUID: '{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}' Style name: 'Light Style 1' UUID: '{9D7B26C5-4107-4FEC-AEDC-1716B250A1EF}' Style name: 'Light Style 1 - Accent 1' UUID: '{3B4B98B0-60AC-42C2-AFA5-B58CD77FA1E5}' Style name: 'Light Style 1 - Accent 2' UUID: '{0E3FDE45-AF77-4B5C-9715-49D594BDF05E}'
如果您要使用的样式名称没有实例,请创建一个。
在您的 PowerPoint 模板中创建幻灯片。
在幻灯片中创建一个表。
将您想要在程序中使用的样式应用到表中。应用样式会在模板中创建该样式的实例。
删除幻灯片,然后保存并关闭模板。
使用表样式设置表格式
此示例显示如何使用表样式来格式化表。
import mlreportgen.ppt.* %% Create a new presentation and add two slides to it ppt = Presentation(); open(ppt); add(ppt,"Title and Content"); add(ppt,"Title and Content"); %% Save the two content placeholders named "Content" in an array. %% Replace the first content placeholder with a 5x5 table and %% apply a table style to it. contents = find(ppt,"Content"); tbl = replace(contents(1),Table(magic(5))); tbl.StyleName = "Medium Style 2 - Accent 1" %% Replace the second content placeholder with a 10x10 table and %% apply a different table style. %% Generate the presentation and open it. tbl = replace(contents(2),Table(magic(10))); tbl.StyleName = "Medium Style 2 - Accent 2" close(ppt); rptview(ppt);
此代码创建一个包含两张幻灯片的 PowerPoint 演示文稿。每张幻灯片包含一个表,并且每个表都应用了不同的表样式。
格式选项
您可以指定表的位置(左上角的 x 和 y 坐标)、高度和宽度属性。当您以编程方式将表添加到演示文稿中时,如果表的所有内容都适合表,则 PowerPoint 会使用这些属性。当您用表替换 TablePlaceholder
或 ContentPlaceholder
时,PowerPoint 会将表放入占位符的位置和维度中。
您可以指定表、列、表行和表条目的内容的默认格式。表条目格式优先于您为列或表行指定的格式。表行格式化优先于表格式化。
您可以为 Table
对象的内容指定这些默认格式选项。
Table 对象格式化 | 格式化对象 | 格式属性 |
---|---|---|
来自模板的表样式 使用 PowerPoint 模板指定表样式格式。在模板中创建该样式的实例。 | 不适用 |
|
背景色 |
|
|
列格式 |
|
|
表单元格内容的垂直对齐 |
|
|
字体系列 |
|
|
用于处理语言环境的复杂脚本的字体系列 |
|
|
字体大小 |
|
|
字体颜色 |
|
|
表左上角的 x 坐标 | 不适用 |
|
表左上角的 y 坐标 | 不适用 |
|
表宽度 | 不适用 |
|
表高度 | 不适用 |
|
要为 TableRow
对象的内容指定默认格式,请将 Style
属性与这些格式对象一起使用。
TableRow 对象格式化 | 格式化对象 | 格式属性 |
---|---|---|
背景色 |
| 不适用 |
表单元格内容的垂直对齐 |
| 不适用 |
字体系列 |
| 不适用 |
复杂脚本的字体系列 |
| 不适用 |
字体大小 |
| 不适用 |
文本颜色 |
| 不适用 |
粗体 |
| 不适用 |
斜体 |
| 不适用 |
删除线 |
| 不适用 |
下划线 |
| 不适用 |
背景色 |
| 不适用 |
要为 TableEntry
对象的内容指定默认格式,请使用这些格式选项。
TableEntry 对象格式化 | 格式化对象 | 格式属性 |
---|---|---|
背景色 |
|
|
列宽 |
| 不适用 |
表单元格内容的垂直对齐 |
|
|
字体系列 |
|
|
用于处理语言环境的复杂脚本的字体系列 |
|
|
文本颜色 |
|
|
字体大小 |
|
|
粗体 |
| 不适用 |
斜体 |
| 不适用 |
删除线 |
| 不适用 |
下划线 |
| 不适用 |
访问表行或条目
要访问表中的一行,请使用 mlreportgen.ppt.Table.row
方法。指定 Table
对象和您想要访问的行号。例如,要访问 TableRow
第二行的 myTable
对象,请使用:
myTable = Table(magic(5)); row2 = row(myTable,2);
要访问表中的条目,请使用 mlreportgen.ppt.Table.entry
方法。指定 Table
对象以及要访问的行号和列号。例如,要访问 TableEntry
第二行第三个条目的 myTable
对象,请使用:
myTable = Table(magic(5)); entry3row2 = entry(myTable,2,3);
或者,您可以使用 Children
对象的 Table
属性来访问表行。您可以使用 Children
对象的 TableRow
属性来访问表条目。例如,要访问 myTable
第二行中的第三个条目:
myTable = Table(magic(5)); entry3row2 = myTable.Children(2).Children(3);
格式化列
要格式化表中的列,请使用一个或多个 mlreportgen.ppt.ColSpec
对象。为想要格式化的每一列创建一个 ColSpec
对象,并为每个 ColSpec
对象指定格式。然后定义 ColSpec
对象的数组并将其与 ColSpecs
对象的 Table
属性一起使用。
表行的格式规范优先于列的格式规范。
import mlreportgen.ppt.* ppt = Presentation("myColSpecs.pptx"); open(ppt); add(ppt,"Title and Content"); t = Table(magic(12)); t.Style = {HAlign("center")}; colSpecs(2) = ColSpec("1.5in"); colSpecs(1) = ColSpec("1.5in"); colSpecs(1).BackgroundColor = "red"; colSpecs(2).BackgroundColor = "green"; t.ColSpecs = colSpecs; t.row(2).Style = {VAlign("bottom")}; t.row(2).BackgroundColor = "tan"; t.entry(2,3).FontColor = "red"; t.entry(2,3).FontSize = "30pt"; replace(ppt,"Content",t); close(ppt); rptview(ppt);
当您创建 ColSpec
对象时,您可以在构造函数中指定列宽。例如:
myColSpec = ColSpec("3in");
ColSpec
对象的 Width 属性指定列宽。您指定 ColSpec
对象的其他格式属性,例如 BackgroundColor
。查看表样式名称
如果您使用 PPT API,要指定默认表样式以外的表样式,则需要知道 PowerPoint 模板中的表样式的名称。您可以在 PowerPoint 中或使用 PPT API 查看名称。
在 PowerPoint 中,选择 视图 > 幻灯片母版。
在包含表的幻灯片布局中,点击
Table
(或该占位符中的任何位置)。在插入选项卡上,点击表。在幻灯片布局中创建一个空表。
出现一个表样式面板。要查看表样式的名称,请将鼠标悬停在表样式图像上。
要使用 PPT API 查看表样式名称,请将 getTableStyleNames
方法与 mlreportgen.ppt.Presentation
对象一起使用。此示例中的输出仅显示默认模板中众多表样式中的前两种。
import mlreportgen.ppt.* ppt = Presentation("myPlaceholderPresentation"); getTableStyleNames(ppt)
ans = 'Medium Style 2 - Accent 1' '{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}' 'Light Style 1' '{9D7B26C5-4107-4FEC-AEDC-1716B250A1EF}'
要在 PPT API 中使用表样式名称,您可以使用名称或数字标识符。
另请参阅
函数
类
mlreportgen.ppt.Table
|mlreportgen.ppt.TableRow
|mlreportgen.ppt.TableEntry
|mlreportgen.ppt.TablePlaceholder
|mlreportgen.ppt.ColSpec
|mlreportgen.ppt.ColWidth