Cell
内容
[
隐藏
]Cell class
代表表格单元格。
要了解更多信息,请访问使用表格文档文章。
public class Cell : CompositeNode
构造函数
姓名 | 描述 |
---|---|
Cell(DocumentBase) | 初始化一个新实例Cell 类. |
特性
姓名 | 描述 |
---|---|
CellFormat { get; } | 提供对单元格格式属性的访问。 |
Count { get; } | 获取此节点的直接子节点的数量。 |
CustomNodeId { get; set; } | 指定自定义节点标识符。 |
virtual Document { get; } | 获取该节点所属的文档。 |
FirstChild { get; } | 获取节点的第一个子节点。 |
FirstParagraph { get; } | 获取直接子级中的第一个段落。 |
HasChildNodes { get; } | 返回真的 如果该节点有任何子节点. |
override IsComposite { get; } | 返回真的 因为该节点可以有子节点。 |
IsFirstCell { get; } | 如果这是一行中的第一个单元格,则为 True;否则为假。 |
IsLastCell { get; } | 如果这是一行中的最后一个单元格,则为 True;否则为假。 |
LastChild { get; } | 获取节点的最后一个子节点。 |
LastParagraph { get; } | 获取直接子级中的最后一段。 |
NextCell { get; } | 获取下一个Cell 节点. |
NextSibling { get; } | 获取紧随该节点的下一个节点。 |
override NodeType { get; } | 返回Cell. |
Paragraphs { get; } | 获取作为单元格直接子级的段落的集合。 |
ParentNode { get; } | 获取此节点的直接父节点。 |
ParentRow { get; } | 返回单元格的父行。 |
PreviousCell { get; } | 获取上一个Cell 节点. |
PreviousSibling { get; } | 获取紧邻此节点之前的节点。 |
Range { get; } | 返回一个Range 表示此节点中包含的文档部分的对象。 |
Tables { get; } | 获取单元格直接子代的表的集合。 |
方法
姓名 | 描述 |
---|---|
override Accept(DocumentVisitor) | 接受访客。 |
AppendChild(Node) | 将指定节点添加到该节点的子节点列表的末尾。 |
Clone(bool) | 创建节点的副本。 |
CreateNavigator() | 创建可用于遍历和读取节点的导航器。 |
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) | 选择第一个Node 与 XPath 表达式匹配。 |
ToString(SaveFormat) | 将节点的内容导出为指定格式的字符串。 |
ToString(SaveOptions) | 使用指定的保存选项将节点的内容导出到字符串中。 |
评论
Cell
只能是a的孩子Row
。
最小有效单元格需要至少有一个Paragraph
。
例子
展示如何创建表。
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");
}
演示如何在不使用文档生成器的情况下构建嵌套表。
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 类)。
// 如果我们将文档保存为 ISO/IEC 29500 之前的格式,Microsoft Word 将忽略这些属性。
table.Title = "Aspose table title";
table.Description = "Aspose table description";
return table;
}
也可以看看
- class CompositeNode
- 命名空间 Aspose.Words.Tables
- 部件 Aspose.Words