主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

创建和格式化表

创建表

要创建表,您可以:

  • 使用不带参量的 Table 构造函数创建一个空的 mlreportgen.ppt.Table 对象。然后将 TableRow 对象追加到 Table 对象,将 TableEntry 对象追加到 TableRow 对象。

  • 使用 Table 构造函数创建一个空的 mlreportgen.ppt.Table 对象,并指定列数。

  • 创建一个 Table 对象,其行和列由您在构造函数中指定的值填充。您可以指定二维数值数组或数字、字符向量和 Paragraph 对象的二维元胞数组。您还可以使用这些类型的值的组合。

有关通过将表行追加到空表来创建表的示例,请参阅 mlreportgen.ppt.TableRow。有关通过在 Table 对象构造函数中指定值来创建表的示例,请参阅 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}'

如果您要使用的样式名称没有实例,请创建一个。

  1. 在您的 PowerPoint 模板中创建幻灯片。

  2. 在幻灯片中创建一个表。

  3. 将您想要在程序中使用的样式应用到表中。应用样式会在模板中创建该样式的实例。

  4. 删除幻灯片,然后保存并关闭模板。

使用表样式设置表格式

此示例显示如何使用表样式来格式化表。

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 会使用这些属性。当您用表替换 TablePlaceholderContentPlaceholder 时,PowerPoint 会将表放入占位符的位置和维度中。

您可以指定表、列、表行和表条目的内容的默认格式。表条目格式优先于您为列或表行指定的格式。表行格式化优先于表格式化。

您可以为 Table 对象的内容指定这些默认格式选项。

Table 对象格式化 格式化对象格式属性

来自模板的表样式

使用 PowerPoint 模板指定表样式格式。在模板中创建该样式的实例。

不适用

StyleName

背景色

BackgroundColor

BackgroundColor

列格式

ColSpec

ColSpecs

表单元格内容的垂直对齐

VAlign

VAlign

字体系列

FontFamily

Font

用于处理语言环境的复杂脚本的字体系列

FontFamily

ComplexScriptFont

字体大小

FontSize

FontSize

字体颜色

FontColor

FontColor

表左上角的 x 坐标

不适用

X

表左上角的 y 坐标

不适用

Y

表宽度

不适用

Width

表高度

不适用

Height

要为 TableRow 对象的内容指定默认格式,请将 Style 属性与这些格式对象一起使用。

TableRow 对象格式化 格式化对象格式属性

背景色

BackgroundColor

不适用

表单元格内容的垂直对齐

VAlign

不适用

字体系列

FontColor

不适用

复杂脚本的字体系列

FontFamily

不适用

字体大小

FontSize

不适用

文本颜色

FontColor

不适用

粗体

Bold

不适用

斜体

Italic

不适用

删除线

Strike

不适用

下划线

Underline

不适用

背景色

BackgroundColor

不适用

要为 TableEntry 对象的内容指定默认格式,请使用这些格式选项。

TableEntry 对象格式化 格式化对象格式属性

背景色

BackgroundColor

BackgroundColor

列宽

ColWidth

不适用

表单元格内容的垂直对齐

VAlign

VAlign

字体系列

FontFamily

Font

用于处理语言环境的复杂脚本的字体系列

FontFamily

ComplexScriptFont

文本颜色

FontColor

FontColor

字体大小

FontSize

FontSize

粗体

Bold

不适用

斜体

Italic

不适用

删除线

Strike

不适用

下划线

Underline

不适用

访问表行或条目

要访问表中的一行,请使用 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 查看名称。

  1. 在 PowerPoint 中,选择 视图 > 幻灯片母版

  2. 在包含表的幻灯片布局中,点击 Table(或该占位符中的任何位置)。在插入选项卡上,点击

  3. 在幻灯片布局中创建一个空表。

    出现一个表样式面板。要查看表样式的名称,请将鼠标悬停在表样式图像上。

    A tooltip "Medium Style 2 - Accent 2" identifies the third table style in the panel of table styles.

要使用 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 中使用表样式名称,您可以使用名称或数字标识符。

另请参阅

函数

主题