Main Content

mlreportgen.dom.FormalTable Class

Namespace: mlreportgen.dom

Formal table

Description

Defines a formal table, which is a table that has a body and optionally a table header, a table footer, or both. The table header, body, and footer are mlreportgen.dom.TableHeader, mlreportgen.dom.TableBody, and mlreportgen.dom.TableFooter objects, respectively.

The mlreportgen.dom.FormalTable class is a handle class.

Creation

Description

formalTableObj = FormalTable creates an empty formal table. Use this constructor as the starting point to create a formal table from scratch.

formalTableObj = FormalTable(ncols) creates an empty formal table having the specified number of columns.

formalTableObj = FormalTable(body) creates a formal table with the body content specified. The constructor converts basic MATLAB® types to corresponding DOM objects. For example, the constructor converts character vectors to mlreportgen.dom.Text objects.

formalTableObj = FormalTable(body,styleName) creates a formal table having the specified body content and style.

formalTableObj = FormalTable(header,body) creates a formal table with a header and a body using the specified contents, and an empty footer.

formalTableObj = FormalTable(header,body,styleName) creates a formal table using the specified content and style. The table has an empty footer.

formalTableObj = FormalTable(header,body,footer) creates a formal table with the specified content for the body, header, and footer.

Note

Microsoft® Word automatically combines consecutive tables with matching style names into a single table. To render consecutive tables as separate tables in DOCX reports, do one of the following options:

  • Set the style names of the consecutive tables to different values.

  • Insert some content in between the tables. For example, insert an empty mlreportgen.dom.Paragraph element between the tables.

Input Arguments

expand all

Number of columns in a table, specified as a numeric value.

Data Types: double

Table body content, specified as:

  • A two-dimensional numeric array

  • A two-dimensional categorical array

  • A two-dimensional cell array that can contain:

    • Character vectors

    • One- or two-dimensional cell array

    • double

    • mlreportgen.dom.Text object

    • mlreportgen.dom.Paragraph object

    • mlreportgen.dom.Image object

    • mlreportgen.dom.Table object

    • mlreportgen.dom.FormalTable object

    • mlreportgen.dom.OrderedList object

    • mlreportgen.dom.UnorderedList object

    • mlreportgen.dom.ExternalLink object

    • mlreportgen.dom.InternalLink object

    • mlreportgen.dom.CharEntity object

The style specified by styleName must be defined in the template used to create the document that contains this table.

The cell array may contain:

  • Character vectors

  • One- or two-dimensional cell array

  • double

  • mlreportgen.dom.Text object

  • mlreportgen.dom.Paragraph object

  • mlreportgen.dom.Image object

  • mlreportgen.dom.Table object

  • mlreportgen.dom.FormalTable object

  • mlreportgen.dom.OrderedList object

  • mlreportgen.dom.UnorderedList object

  • mlreportgen.dom.ExternalLink object

  • mlreportgen.dom.InternalLink object

  • mlreportgen.dom.CharEntity object

Properties

expand all

Background color that consists of a CSS color name or a hexadecimal RGB value, specified as a character vector or string scalar.

Note

Setting the BackgroundColor property adds a mlreportgen.dom.BackgroundColor format object to the Style property. Setting the BackgroundColor property to an empty value removes the object.

Example: "blue"

Example: "#0000ff"

Attributes:

NonCopyable
true

Data Types: char | string

The table constructor creates a mlreportgen.dom.TableBody object and assigns it to this property when the formal table is constructed. You cannot subsequently set this property. However, you can append content to the table body and set its properties via this property.

Attributes:

SetAccess
protected
NonCopyable
true

Type of border to draw, specified as one of the values in the table.

Border ValueDescriptionSupported Output Types

"dashed"

Dashed line

HTML, PDF, Word

"dashdotstroked"

Line with alternating diagonal dashes and dot

Word

"dashsmallgap"

Dashed line with a small gap between dashes

Word

"dotted"

Dotted line

HTML, PDF, Word

"dotdash"

Line with alternating dots and dashes

Word

"dotdotdash"

Line with alternating double dots and a dash

Word

"double"

Double line

HTML, PDF, Word

"doublewave"

Double wavy line

Word

"groove"

3-D effect grooved line

HTML, PDF

"hidden"

No line

The "none" border type also produces no line. However, conflicting borders are handled differently for "hidden" types than for "none" types. The "hidden" border type takes precedence over a conflicting border type. A conflicting border type takes precedence over the "none" type.

HTML, PDF

"inset"

3-D effect line

HTML, PDF, Word

"none"

No line

The "hidden" border type also produces no line. However, conflicting borders are handled differently for "hidden" types than for "none" types. The "hidden" border type takes precedence over a conflicting border type. A conflicting border type takes precedence over the "none" type.

HTML, PDF, Word

"outset"

3-D effect line

HTML, PDF, Word

"ridge"

3-D effect ridged line

HTML, PDF

"single"

Single line

Word

"solid"

Single line

HTML, PDF

"thick"

Thick line

Word

"thickthinlargegap"

Dashed line with alternating thick and thin dashes with a large gap

Word

"thickthinmediumgap"

Dashed line with alternating thick and thin dashes with a medium gap

Word

"thickthinsmallgap"

Dashed line with alternating thick and thin dashes with a small gap

Word

"thinthicklargegap"

Dashed line with alternating thin and thick dashes with a medium gap

Word

"thinthickmediumgap"

Dashed line with alternating thin and thick dashes, with a medium gap

Word

"thinthicksmallgap"

Dashed line with alternating thin and thick dashes with a small gap

Word

"thinthickthinlargegap"

Dashed line with alternating thin and thick dashes with a large gap

Word

"thinthickthinmediumgap"

Dashed line with alternating thin and thick dashes with a medium gap

Word

"thinthickthinsmallgap"

Dashed line with alternating thin and thick dashes with a small gap

Word

"threedemboss"

Embossed effect line

Word

"threedengrave"

Engraved effect line

Word

"triple"

Triple line

Word

"wave"

Wavy line

Word

Attributes:

NonCopyable
true

Data Types: char | string

A value of "on" collapses borders of adjacent cells into a single border. A value of "off" keeps borders of adjacent cells.

Note

This property applies only to HTML documents.

Attributes:

NonCopyable
true

Data Types: char | string

Border color, specified as a character vector or string scalar that consists of a CSS color name (see https://www.w3.org/wiki/CSS/Properties/color/keywords) or a hexadecimal RGB (truecolor) value in the form #RRGGBB.

Example: 'blue'

Example: '#0000ff'

Attributes:

NonCopyable
true

Data Types: char | string

Table border width, specified in the form valueUnits, where Units is an abbreviation for the units. Valid abbreviations are:

  • "px" — pixels

  • "cm" — centimeters

  • "in" — inches

  • "mm" — millimeters

  • "pc" — picas

  • "pt" — points

Example: "2pt"

Attributes:

NonCopyable
true

Data Types: char | string

Style of the line that separates the columns of a table or table section, specified as a string scalar or a character vector. See the Border property for a table of valid entries.

Attributes:

NonCopyable
true

Data Types: char | string

Color of lines separating columns specified as a character vector or string scalar that consists of a CSS color name or a hexadecimal RGB value.

Example: "blue"

Example: "#0000ff"

Attributes:

NonCopyable
true

Data Types: char | string

Width of the line separating table columns, specified as a character vector or string scalar that consists of a number followed by an abbreviation of a unit of measurement. Valid Units abbreviations are:

  • "px" — pixels

  • "cm" — centimeters

  • "in" — inches

  • "mm" — millimeters

  • "pc" — picas

  • "pt" — points

Example: "10pt"

Attributes:

NonCopyable
true

Data Types: char | string

An array of mlreportgen.dom.TableColSpecGroup objects that specifies the width, alignment, and other properties of a group of columns. The first object applies to the first group of columns, the second object to the second group, and so on. Specify the number of columns belonging to each group using the Span property of the TableColSpecGroup object. For example, if the first object has a span of 2, it applies to the first two columns. If the second group has a span of 3, it applies to the next three columns, and so on.

Attributes:

NonCopyable
true

Direction for text to flow, specified as one of these values:

  • "ltr" — Text flows from left to right

  • "rtl" — Text flows from right to left

Attributes:

NonCopyable
true

Data Types: char | string

Horizontal alignment of this table, specified as one of these values:

  • "center"

  • "left"

  • "right"

Note

To prevent the overflow of large tables in PDF output, set the Width property.

Attributes:

NonCopyable
true

Data Types: char | string

The table constructor creates a table header object and assigns it to this property when the formal table is constructed. You cannot subsequently set this property. However, you can append content to the table body and set its properties via this property.

Attributes:

SetAccess
private
Transient
true
NonCopyable
true

Since R2024a

Option to make table columns sortable, specified as a numeric or logical 1 (true) or 0 (false).

Attributes:

NonCopyable
true

Data Types: logical

Whether the table contents stay on the same page, specified as a numeric or logical 1 (true) or 0 (false). The default value is empty and is equivalent to true.

Attributes:

NonCopyable
true

Data Types: logical

Left margin of the table, specified as a character vector or string scalar that consists of a number followed by an abbreviation of a unit of measurement. Valid abbreviations are:

  • "px" — pixels

  • "cm" — centimeters

  • "in" — inches

  • "mm" — millimeters

  • "pc" — picas

  • "pt" — points

Example: "10pt"

Attributes:

NonCopyable
true

Data Types: char | string

Style of the lines that separate the rows of the table, specified as a character vector or string scalar.

See the description of the Border property for a description of the possible values.

Attributes:

NonCopyable
true

Data Types: char | string

Color of lines separating table rows, specified as a character vector or string scalar that consists of a CSS color name or a hexadecimal RGB value.

Example: "blue"

Example: "#0000ff"

Attributes:

NonCopyable
true

Data Types: char | string

Width of the row separator, specified in the form valueUnits where Units is an abbreviation for the units. Valid abbreviations are:

  • "px" — pixels

  • "cm" — centimeters

  • "in" — inches

  • "mm" — millimeters

  • "pc" — picas

  • "pt" — points

Example: "5pt"

Attributes:

NonCopyable
true

Data Types: char | string

Style to use for the table entries, specified as a cell array of format objects.

Note

The styles specified by this property apply to the content of a table's entries and not to the entries themselves. For example, you can use this property to define the font size of a table's entries but not the type or color of the entry borders. To specify the borders, you have to set the Style property of each entry.

Note

Be careful not to inadvertently overwrite a previous setting of this property. For example, setting this table's TableEntriesHAlign property appends an HAlign format object to this property. To avoid overwriting this property, you should set this property before setting other table properties that append formats to this property.

Attributes:

NonCopyable
true

Data Types: cell

The inner margin is the margin between table cell content and the cell borders in the form valueUnits where Units is an abbreviation for the units. Valid abbreviations are:

  • "px" — pixels

  • "cm" — centimeters

  • "in" — inches

  • "mm" — millimeters

  • "pc" — picas

  • "pt" — points

Attributes:

NonCopyable
true

Data Types: char | string

A percentage (for example, '100%') of the page width (minus margins for Word reports) or a number of units of measurement, having the format valueUnits. Units is an abbreviation for the units. These are valid abbreviations:

  • px — pixels

  • cm — centimeters

  • in — inches

  • mm — millimeters

  • pc — picas

  • pt — points

  • % — percent

Example: "5pt"

Attributes:

NonCopyable
true

Data Types: char | string

Name of a style specified in the style sheet of the document or document part to which this table is appended

The style that specifies the appearance of this table in the output document, for formats not specified by Style property.

You can set the StyleName property of any formal table section. Setting StyleName overrides the style specified by the formal table itself.

Note

If you do this for a Word document, you must explicitly specify the width of each column in a section to ensure that all sections have the same width. Word, unlike HTML and PDF, has no built-in support for formal tables. To handle this, the DOM interface represents a formal table as three tables, one for each section, embedded in a 3x1 table.

Attributes:

NonCopyable
true

Data Types: char | string

Format specification for this document element object, specified as an array of format objects. The formats specified by this property override corresponding formats specified by the StyleName property of this element. Formats that do not apply to this element are ignored.

Attributes:

NonCopyable
true

Data Types: cell

Custom attributes of this document element, specified as an array of mlreportgen.dom.CustomAttribute objects. The custom attributes must be supported by the output format of the document element to which this object is appended.

Attributes:

NonCopyable
true

Parent of mlreportgen.dom.FormalTable object, specified as a document element object. A document element must have only one parent.

Attributes:

SetAccess
private
NonCopyable
true

Children of mlreportgen.dom.FormalTable object, specified as an array of document element objects. This property contains the document element objects appended using the append method.

Attributes:

SetAccess
private
NonCopyable
true

Tag for mlreportgen.dom.FormalTable object, specified as a character vector or string scalar. The DOM API generates a session-unique tag as part of the creation of this object. The generated tag has the form CLASS:ID, where CLASS is the object class and ID is the value of the Id property of the object. Specify your own tag value to help you identify where to look when an issue occurs during document generation.

Attributes:

NonCopyable
true

Data Types: char | string

Object identifier for mlreportgen.dom.FormalTable object, specified as a character vector or string scalar. The DOM API generates a session-unique identifier when it creates the document element object. You can specify your own value for Id.

Attributes:

NonCopyable
true

Data Types: char | string

Methods

expand all

Version History

Introduced in R2014b

expand all