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