主要内容

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

格式继承

您可以使用文档对象模型 (DOM) API 来使用基于模板的样式来指定文档元素对象的外观,并格式化基于对象的样式或其等效的格式属性。如果设置文档元素对象的 StyleNameStyle 属性,则 Style 属性中的格式将覆盖 StyleName 属性中基于模板的样式指定的相应格式。在此示例中,假设 Warning 样式将警告的颜色定义为黄色。在段落上设置 Style 属性会覆盖 StyleName 设置指定的颜色。

import mlreportgen.dom.*;
d = Document("MyDoc","docx","MyTemplate");
p = Paragraph("Danger!");
p.StyleName = "Warning";
p.Style = {Color("red")};
append(d,p);
close(d);

您可以使用一条语句为容器中包含的所有文档元素对象分配格式。例如,此代码使用单个 Style 属性为表中的所有条目分配颜色。

import mlreportgen.dom.*;
d = Document("MyDoc");
tableArray = {"a","b";"c","d"};
table = append(d,tableArray);
table.Style = {Color("blue")};
close(d);
rptview(d.OutputPath);

当生成 HTML 或 PDF 报告时,文档元素对象会从其容器中继承未指定的格式,无论文档元素对象是否为 StyleName 指定了值。容器会从其父容器继承未显式指定的任何格式,依此类推,直至容器层次结构的顶层。

当您生成 DOCX 报告并为文档元素对象指定 StyleName 的值时,该对象不会从其容器中继承未指定的格式。在此示例中,文档元素对象 textStyleName 指定了一个值,并且未继承文档元素对象 para 指定的粗体格式。

import mlreportgen.dom.*;

d = Document("MyDoc","docx");

text = Text("My Paragraph");
text.Underline = "single";
text.StyleName = "paraTitle";

para = Paragraph(text);
para.Bold = true;

append(d,para);
close(d);
rptview(d);

The text "My Paragraph" without bold formatting

如果未为 StyleName 指定值,则文档元素对象 text 将继承文档元素对象 para 指定的粗体格式。

import mlreportgen.dom.*;
d = Document("MyDoc","docx");

text = Text("My Paragraph");
text.Underline = "single";

para = Paragraph(text);
para.Bold = true;

append(d,para);
close(d);
rptview(d);

The text "My Paragraph" with bold formatting

另请参阅

主题