格式继承
您可以使用文档对象模型 (DOM) API 来使用基于模板的样式来指定文档元素对象的外观,并格式化基于对象的样式或其等效的格式属性。如果设置文档元素对象的 StyleName
和 Style
属性,则 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
的值时,该对象不会从其容器中继承未指定的格式。在此示例中,文档元素对象 text
为 StyleName
指定了一个值,并且未继承文档元素对象 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);
如果未为 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);