Main Content

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

创建斑马条纹表格

此示例显示如何创建具有交替颜色行或列的表格。这些表被称为斑马条纹或带状表。要在报告中创建斑马条纹表,您可以在程序或模板中定义它。本节中的示例有斑马条纹的行。对于斑马条纹柱可以使用类似的技术。

报告生成器 API 支持以编程方式或使用 Word 或 HTML 模板创建斑马条纹表。您无法使用 PDF 模板为斑马条纹表创建 PDF 报 告。

使用程序制作斑马条纹表格

该程序创建一个 8×8 的 幻方表。它的行背景颜色在蓝色和白色之间交替,这有助于读取和总结行。该程序还包括行高、表宽、边框和单元格条目对齐的格式。

import mlreportgen.report.*
import mlreportgen.dom.*

rpt = Report('zebraTable','pdf');

maglen = 8;
mag = magic(maglen);

tb = Table(mag);

% Set the colors for alternating rows
for i = 1:maglen
    r = tb.row(i);
    if mod(i,2)==0
      r.Style = {BackgroundColor('lightsteelblue')};
    else
      r.Style = {BackgroundColor('white')};
    end
end

tb.Style={RowHeight('0.3in'),RowSep('solid'),ColSep('solid')};
tb.Width= '3in';
tb.TableEntriesVAlign = 'middle';
tb.TableEntriesHAlign = 'center';
tb.Border = 'single';

add(rpt,tb)
close(rpt)
rptview(rpt)

使用 Word 模板的斑马条纹表格

此示例显示如何向定义斑马条纹表格的 Word 模板添加表格样式。使用模板可以使您的应用程序模块化。您可以更新模板,而不必更新可能会引入错误的程序。

1.打开 Word 模板。在此示例中,模板文件为 myrpt.dotx,您可以使用 mlreportgen.report.Report.createTemplate('myrpt','docx') 创建它。要打开 Word 模板文件,右键点击该文件,然后点击菜单中的“打开”。(如果直接点击该文件,将会打开使用该模板的 .doc 文件。)

2.打开样式窗格,如图所示。

3.在“样式”窗格中,点击新建样式按钮。

4.要定义表格样式,请指定或选择字段值。为了匹配程序化的斑马条纹表格示例,请设置以下字段以将功能应用于表格和表格行:

  • 名称 - 添加 ZebraStripeTable 作为样式的名称。使用此样式名称指定程序中表格要使用的样式。

  • 样式类型 - Table

  • 应用格式至 - Even banded rows

  • 颜色字段 (No Color) - 从下拉菜单中选择奇数带行的颜色。

然后,设置这些字段以将这些附加功能应用到整个表:

  • 应用格式至 - Whole table

  • 对齐 - Align Center

  • 边框 - All Borders

5.点击确定保存新样式。

6.保存模板文件

7.在您的程序中,指定要使用的模板文件,然后,您可以将新的斑马条纹样式应用到程序中的表格。

rpt = mlreportgen.dom.Document('myreport','docx','myrpt.dotx');
tb = Table();
tb.StyleName = 'ZebraStripeTable';

并非所有可以在程序中使用的格式选项在 Word 中都可用。为了使此示例与程序示例相匹配,除了在 Word 模板中指定样式之外,还必须在程序中指定行高和表格宽度。

tb.Style = {RowHeight('0.3in')};
tb.Width = '3in';

这是使用 Word 模板 myrpt.dotx 将幻方格式化为斑马条纹表的完整代码。

import mlreportgen.report.*
import mlreportgen.dom.*

rpt = mlreportgen.report.Report('myreport','docx','myrpt.dotx');
maglen = 8;
mag = magic(maglen);

tb = Table(mag);
tb.StyleName = 'ZebraStripeTable';
tb.Style={RowHeight('0.3in')};
tb.Width= '3in';

add(rpt,tb)
close(rpt);
rptview(rpt)

使用 HTML 模板的斑马条纹表格

此示例显示如何向定义斑马条纹表格的 HTML 模板添加表格样式。使用模板可以使您的应用程序模块化。您可以更新模板,而不必更新可能会引入错误的程序。

1.如果您没有现有的 HTML 模板,请使用 mlreportgen.report.Report.createTemplate('myrpt','html') 创建一个。在此示例中,模板文件位于压缩模板包 myrpt.htmtx 中。

2.使用 unzipTemplate('myrpt.htmtx') 解压模板,创建一个名为 myrpt 的文件夹,其中包含样式表和图片模板文件。

3.转到 myrpt 文件夹中的样式表文件夹。在文本编辑器中打开 root.css 文件。

4.创建一个 CSS 规则,为 HTML 表格元素定义样式名称 ZebraStripeTable。要定义 ZebraStripeTable 样式的 CSS 规则,请将以下行添加到 root.css 文件中。背景颜色 #B0C4DE 和 #FFFFFF 分别是浅蓝色和白色。

    /* Settings for whole table */
    table.ZebraStripeTable {
       text-align: center;
           border: 1px solid black;
           border-collapse: collapse;
           width: 5in;
           height: 4in;
    }
    /* Settings for table body */
    table.ZebraStripeTable td {
           padding: 0pt 0pt 0pt 0pt;
           vertical-align: middle;
           text-align: center;
           border: 1px solid black;
           border-collapse: collapse;
    }
    /* Zebra rows and colors */
    tr:nth-child(even) {
        background-color: #B0C4DE
    }
    tr:nth-child(odd) {
        background-color: #FFFFFF
    }

5.保存 root.css 文件。

6.使用 zipTemplate('myrpt') 将模板文件压缩回 myrpt.htmtx 模板包。

7.在您的程序中,指定 ZebraStripedTable 作为表格的样式。

rpt = mlreportgen.report.Report('myreport','html','myrpt.htmtx');
tb = Table();
tb.StyleName = 'ZebraStripeTable';

这是使用 HTML 模板 myrpt.htmtx 将幻方格式化为斑马条纹表的完整代码。

import mlreportgen.report.*
import mlreportgen.dom.*

rpt = mlreportgen.report.Report('myreport','html','myrpt.htmtx');

maglen = 8;
mag = magic(maglen);
tb = Table(mag);
tb.StyleName = 'ZebraStripeTable';

add(rpt,tb);
close(rpt);
rptview(rpt);