Table
内容
[
隐藏
]
Table class
表示 Word 文档中的表格。
public class Table : CompositeNode
构造函数
姓名 | 描述 |
---|---|
Table(DocumentBase) | 初始化 桌子类. |
特性
姓名 | 描述 |
---|---|
AbsoluteHorizontalDistance { get; set; } | 获取或设置表格属性指定的绝对水平浮动表格位置,以点为单位。 默认值为 0. |
AbsoluteVerticalDistance { get; set; } | 获取或设置表格属性指定的绝对垂直浮动表格位置,以点为单位。 默认值为0. |
Alignment { get; set; } | 指定内联表在文档中的对齐方式。 |
AllowAutoFit { get; set; } | 允许 Microsoft Word 和 Aspose.Words 自动调整表格中单元格的大小以适应其内容。 |
AllowCellSpacing { get; set; } | 获取或设置“允许单元格之间的间距”选项。 |
AllowOverlap { get; } | 获取浮动表是否应允许文档中的其他浮动对象在显示时 重叠其范围。 默认值为真的 . |
Bidi { get; set; } | 获取或设置这是否是一个从右到左的表。 |
BottomPadding { get; set; } | 获取或设置要添加到单元格内容下方的空间量(以磅为单位)。 |
CellSpacing { get; set; } | 获取或设置单元格之间的空间量(以磅为单位)。 |
ChildNodes { get; } | 获取该节点的所有直接子节点。 |
Count { get; } | 获取此节点的直接子节点数。 |
CustomNodeId { get; set; } | 指定自定义节点标识符。 |
Description { get; set; } | 获取或设置此表的描述。 它提供表中包含的信息的替代文本表示。 |
DistanceBottom { get; } | 获取表格底部和周围文本之间的距离,以磅为单位。 |
DistanceLeft { get; } | 获取表格左侧与周围文本之间的距离,以磅为单位。 |
DistanceRight { get; } | 获取表格右侧和周围文本之间的距离,以磅为单位。 |
DistanceTop { get; } | 获取桌面和周围文本之间的距离,以磅为单位。 |
virtual Document { get; } | 获取该节点所属的文档。 |
FirstChild { get; } | 获取节点的第一个子节点。 |
FirstRow { get; } | 返回第一个 排表中的节点。 |
HasChildNodes { get; } | 如果此节点有任何子节点,则返回 true。 |
HorizontalAnchor { get; set; } | 获取计算浮动表水平定位的基础对象。 默认值为Column. |
override IsComposite { get; } | 返回真,因为该节点可以有子节点。 |
LastChild { get; } | 获取节点的最后一个子节点。 |
LastRow { get; } | 返回最后一个 排表中的节点。 |
LeftIndent { get; set; } | 获取或设置代表表格左缩进的值。 |
LeftPadding { get; set; } | 获取或设置要添加到单元格内容左侧的空间量(以磅为单位)。 |
NextSibling { get; } | 获取紧跟此节点的节点。 |
override NodeType { get; } | 返回 节点类型表. |
ParentNode { get; } | 获取此节点的直接父节点。 |
PreferredWidth { get; set; } | 获取或设置表格首选宽度。 |
PreviousSibling { get; } | 获取紧接在此节点之前的节点。 |
Range { get; } | 返回一个 范围表示此节点中包含的文档部分的对象。 |
RelativeHorizontalAlignment { get; set; } | 获取或设置浮动表格相对水平对齐方式。 |
RelativeVerticalAlignment { get; set; } | 获取或设置浮动表相对垂直对齐方式。 |
RightPadding { get; set; } | 获取或设置要添加到单元格内容右侧的空间量(以磅为单位)。 |
Rows { get; } | 提供对表行的类型化访问。 |
Style { get; set; } | 获取或设置应用于此表格的表格样式。 |
StyleIdentifier { get; set; } | 获取或设置应用于此表的表样式的区域设置独立样式标识符。 |
StyleName { get; set; } | 获取或设置应用于此表格的表格样式名称。 |
StyleOptions { get; set; } | 获取或设置指定如何将表格样式应用于此表格的位标志。 |
TextWrapping { get; set; } | 获取或设置TextWrapping 对于表. |
Title { get; set; } | 获取或设置此表的标题。 它提供表中包含的信息的替代文本表示。 |
TopPadding { get; set; } | 获取或设置要添加到单元格内容之上的空间量(以磅为单位)。 |
VerticalAnchor { get; set; } | 获取计算浮动表垂直定位的基础对象。 默认值为Margin. |
方法
姓名 | 描述 |
---|---|
override Accept(DocumentVisitor) | 接受访客。 |
AppendChild(Node) | 将指定节点添加到该节点的子节点列表的末尾。 |
AutoFit(AutoFitBehavior) | 根据指定的自动调整行为调整表格和单元格的大小。 |
ClearBorders() | 删除此表上的所有表和单元格边框。 |
ClearShading() | 移除桌子上的所有阴影。 |
Clone(bool) | 创建节点的副本。 |
ConvertToHorizontallyMergedCells() | 将按宽度水平合并的单元格转换为按宽度合并的单元格HorizontalMerge . |
CreateNavigator() | 保留供系统使用。 IXPathNavigable. |
EnsureMinimum() | 如果表没有行,创建并追加一个 排. |
GetAncestor(NodeType) | 获取指定的第一个祖先NodeType . |
GetAncestor(Type) | 获取指定对象类型的第一个祖先。 |
GetChild(NodeType, int, bool) | 返回与指定类型匹配的第 N 个子节点。 |
GetChildNodes(NodeType, bool) | 返回与指定类型匹配的子节点的实时集合。 |
GetEnumerator() | 为在该节点的子节点上的每个样式迭代提供支持。 |
override GetText() | 获取该节点及其所有子节点的文本。 |
IndexOf(Node) | 返回子节点数组中指定子节点的索引。 |
InsertAfter(Node, Node) | 在指定参考节点之后立即插入指定节点。 |
InsertBefore(Node, Node) | 在指定的参考节点之前插入指定的节点。 |
NextPreOrder(Node) | 根据前序树遍历算法获取下一个节点。 |
PrependChild(Node) | 将指定节点添加到此节点的子节点列表的开头。 |
PreviousPreOrder(Node) | 根据前序树遍历算法获取上一个节点。 |
Remove() | 从父级中移除自身。 |
RemoveAllChildren() | 移除当前节点的所有子节点。 |
RemoveChild(Node) | 移除指定的子节点。 |
RemoveSmartTags() | 删除所有SmartTag 当前节点的后代节点。 |
SelectNodes(string) | 选择与 XPath 表达式匹配的节点列表。 |
SelectSingleNode(string) | 选择与 XPath 表达式匹配的第一个节点。 |
SetBorder(BorderType, LineStyle, double, Color, bool) | 将指定的表格边框设置为指定的线型、宽度和颜色。 |
SetBorders(LineStyle, double, Color) | 将所有表格边框设置为指定的线型、宽度和颜色。 |
SetShading(TextureIndex, Color, Color) | 为整个表的指定值设置底纹。 |
ToString(SaveFormat) | 将节点的内容导出为指定格式的字符串。 |
ToString(SaveOptions) | 使用指定的保存选项将节点的内容导出为字符串。 |
评论
桌子是块级节点,可以是派生自的类的子节点 故事or 内联故事.
桌子可以包含一个或多个 排节点。
一个最小有效表需要至少有一个 排.
例子
显示如何创建表。
Document doc = new Document();
Table table = new Table(doc);
doc.FirstSection.Body.AppendChild(table);
// 表格包含行,其中包含单元格,其中可能有段落
// 带有典型元素,例如运行、形状,甚至其他表格。
// 在表上调用“EnsureMinimum”方法将确保
// 表格至少有一行、一个单元格和一个段落。
Row firstRow = new Row(doc);
table.AppendChild(firstRow);
Cell firstCell = new Cell(doc);
firstRow.AppendChild(firstCell);
Paragraph paragraph = new Paragraph(doc);
firstCell.AppendChild(paragraph);
// 在表格第一行的第一个调用中添加文本。
Run run = new Run(doc, "Hello world!");
paragraph.AppendChild(run);
doc.Save(ArtifactsDir + "Table.CreateTable.docx");
展示如何遍历文档中的所有表格并打印每个单元格的内容。
Document doc = new Document(MyDir + "Tables.docx");
TableCollection tables = doc.FirstSection.Body.Tables;
Assert.AreEqual(2, tables.ToArray().Length);
for (int i = 0; i < tables.Count; i++)
{
Console.WriteLine($"Start of Table {i}");
RowCollection rows = tables[i].Rows;
// 我们可以在行集合上使用“ToArray”方法将其克隆到数组中。
Assert.AreEqual(rows, rows.ToArray());
Assert.AreNotSame(rows, rows.ToArray());
for (int j = 0; j < rows.Count; j++)
{
Console.WriteLine($"\tStart of Row {j}");
CellCollection cells = rows[j].Cells;
// 我们可以在单元格集合上使用“ToArray”方法将其克隆到数组中。
Assert.AreEqual(cells, cells.ToArray());
Assert.AreNotSame(cells, cells.ToArray());
for (int k = 0; k < cells.Count; k++)
{
string cellText = cells[k].ToString(SaveFormat.Text).Trim();
Console.WriteLine($"\t\tContents of Cell:{k} = \"{cellText}\"");
}
Console.WriteLine($"\tEnd of Row {j}");
}
Console.WriteLine($"End of Table {i}\n");
}
展示如何构建格式化的 2x2 表格。
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Table table = builder.StartTable();
builder.InsertCell();
builder.CellFormat.VerticalAlignment = CellVerticalAlignment.Center;
builder.Write("Row 1, cell 1.");
builder.InsertCell();
builder.Write("Row 1, cell 2.");
builder.EndRow();
// 在构建表格时,文档构建器将应用其当前的 RowFormat/CellFormat 属性值
// 到其光标所在的当前行/单元格以及创建它们时的任何新行/单元格。
Assert.AreEqual(CellVerticalAlignment.Center, table.Rows[0].Cells[0].CellFormat.VerticalAlignment);
Assert.AreEqual(CellVerticalAlignment.Center, table.Rows[0].Cells[1].CellFormat.VerticalAlignment);
builder.InsertCell();
builder.RowFormat.Height = 100;
builder.RowFormat.HeightRule = HeightRule.Exactly;
builder.CellFormat.Orientation = TextOrientation.Upward;
builder.Write("Row 2, cell 1.");
builder.InsertCell();
builder.CellFormat.Orientation = TextOrientation.Downward;
builder.Write("Row 2, cell 2.");
builder.EndRow();
builder.EndTable();
// 先前添加的行和单元格不受构建器格式更改的追溯影响。
Assert.AreEqual(0, table.Rows[0].RowFormat.Height);
Assert.AreEqual(HeightRule.Auto, table.Rows[0].RowFormat.HeightRule);
Assert.AreEqual(100, table.Rows[1].RowFormat.Height);
Assert.AreEqual(HeightRule.Exactly, table.Rows[1].RowFormat.HeightRule);
Assert.AreEqual(TextOrientation.Upward, table.Rows[1].Cells[0].CellFormat.Orientation);
Assert.AreEqual(TextOrientation.Downward, table.Rows[1].Cells[1].CellFormat.Orientation);
doc.Save(ArtifactsDir + "DocumentBuilder.BuildTable.docx");
展示如何在不使用文档构建器的情况下构建嵌套表。
public void CreateNestedTable()
{
Document doc = new Document();
// 创建三行四列的外部表,然后将其添加到文档中。
Table outerTable = CreateTable(doc, 3, 4, "Outer Table");
doc.FirstSection.Body.AppendChild(outerTable);
// 创建另一个包含两行两列的表,然后将其插入到第一个表的第一个单元格中。
Table innerTable = CreateTable(doc, 2, 2, "Inner Table");
outerTable.FirstRow.FirstCell.AppendChild(innerTable);
doc.Save(ArtifactsDir + "Table.CreateNestedTable.docx");
}
/// <summary>
/// 在文档中创建一个新表格,每个单元格中具有给定的尺寸和文本。
/// </summary>
private static Table CreateTable(Document doc, int rowCount, int cellCount, string cellText)
{
Table table = new Table(doc);
for (int rowId = 1; rowId <= rowCount; rowId++)
{
Row row = new Row(doc);
table.AppendChild(row);
for (int cellId = 1; cellId <= cellCount; cellId++)
{
Cell cell = new Cell(doc);
cell.AppendChild(new Paragraph(doc));
cell.FirstParagraph.AppendChild(new Run(doc, cellText));
row.AppendChild(cell);
}
}
// 您可以使用“标题”和“描述”属性分别为表格添加标题和描述。
// 在我们可以使用这些属性之前,表格必须至少有一行。
// 这些属性对于符合 ISO/IEC 29500 的 .docx 文档有意义(请参阅 OoxmlCompliance 类)。
// 如果我们将文档保存为 pre-ISO/IEC 29500 格式,Microsoft Word 会忽略这些属性。
table.Title = "Aspose table title";
table.Description = "Aspose table description";
return table;
}
也可以看看
- class CompositeNode
- 命名空间 Aspose.Words.Tables
- 部件 Aspose.Words