Allows user to specify style id for Tables

Allows user to specify the style Id which will be added in the form of:
<w:tblStyle w:val="TableGrid"/>

As specified in table Structure in http://officeopenxml.com/WPtable.php
This commit is contained in:
ramonmata
2019-10-21 11:40:05 -05:00
parent 75c3c2f985
commit c61d24d8d4
3 changed files with 27 additions and 0 deletions

View File

@ -6,6 +6,7 @@ import { TableBorders } from "./table-borders";
import { TableCellMargin } from "./table-cell-margin";
import { ITableFloatOptions, TableFloatProperties } from "./table-float-properties";
import { TableLayout, TableLayoutType } from "./table-layout";
import { TableStyle } from "./table-style";
import { PreferredTableWidth } from "./table-width";
export class TableProperties extends IgnoreIfEmptyXmlComponent {
@ -46,4 +47,9 @@ export class TableProperties extends IgnoreIfEmptyXmlComponent {
return this;
}
public setStyle(styleId: string): TableProperties {
this.root.push(new TableStyle(styleId));
return this;
}
}

View File

@ -0,0 +1,15 @@
import { Attributes, XmlComponent } from "file/xml-components";
export class TableStyle extends XmlComponent {
public readonly styleId: string;
constructor(styleId: string) {
super("w:tblStyle");
this.styleId = styleId;
this.root.push(
new Attributes({
val: styleId,
}),
);
}
}

View File

@ -32,6 +32,7 @@ export interface ITableOptions {
};
readonly float?: ITableFloatOptions;
readonly layout?: TableLayoutType;
readonly style?: string;
}
export class Table extends XmlComponent {
@ -44,6 +45,7 @@ export class Table extends XmlComponent {
margins: { marginUnitType, top, bottom, right, left } = { marginUnitType: WidthType.AUTO, top: 0, bottom: 0, right: 0, left: 0 },
float,
layout,
style,
}: ITableOptions) {
super("w:tbl");
this.properties = new TableProperties();
@ -96,5 +98,9 @@ export class Table extends XmlComponent {
if (layout) {
this.properties.setLayout(layout);
}
if (style) {
this.properties.setStyle(style);
}
}
}