Práce s textem v tabulce

Jak je uvedeno v předchozích článcích, tabulka obvykle obsahuje prostý text, i když jiný obsah, jako jsou obrázky nebo dokonce jiné tabulky mohou být umístěny v tabulkách.

Přidávání textu nebo jiného obsahu do tabulky se provádí vhodnými metodami DocumentBuilder třída a je popsána v “Vytvořte stůl” článek. V tomto článku budeme hovořit o tom, jak pracovat s textem v již existující tabulce.

Nahradit text v tabulce

Stůl, jako každý jiný uzel v Aspose.Words, má přístup k Range objekt. Pomocí objektu rozsahu tabulky můžete text nahradit v tabulce.

V současné době je podporována schopnost používat zvláštní znaky při výměně, takže lze stávající text nahradit textem s více odstavci. K tomu je třeba použít speciální metaznaky popsané v odpovídajících Replace metoda.

Následující příklad kódu ukazuje, jak nahradit všechny případy řetězce textu v buňkách celé tabulky:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git.
Document doc = new Document(MyDir + "Tables.docx");
Table table = (Table)doc.GetChild(NodeType.Table, 0, true);
table.Range.Replace("Carrots", "Eggs", new FindReplaceOptions(FindReplaceDirection.Forward));
table.LastRow.LastCell.Range.Replace("50", "20", new FindReplaceOptions(FindReplaceDirection.Forward));
doc.Save(ArtifactsDir + "FindAndReplace.ReplaceTextInTable.docx");
view raw replace-text.cs hosted with ❤ by GitHub

Extrahovat prostý text z tabulky nebo buňky

Použití Range objekt, můžete také volat metody na celém rozsahu tabulky a extrahovat tabulku jako prostý text. K tomu použijte Text majetek

Následující příklad kódu ukazuje, jak tisknout rozsah textu tabulky:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git.
Document doc = new Document(MyDir + "Tables.docx");
Table table = (Table) doc.GetChild(NodeType.Table, 0, true);
// The range text will include control characters such as "\a" for a cell.
// You can call ToString and pass SaveFormat.Text on the desired node to find the plain text content.
Console.WriteLine("Contents of the table: ");
Console.WriteLine(table.Range.Text);
view raw extract-text.cs hosted with ❤ by GitHub

Stejná technika se používá pouze k získání obsahu z jednotlivých stolních buněk.

Následující příklad kódu ukazuje, jak tisknout textovou řadu prvků řádku a tabulky:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git.
Console.WriteLine("\nContents of the row: ");
Console.WriteLine(table.Rows[1].Range.Text);
Console.WriteLine("\nContents of the cell: ");
Console.WriteLine(table.LastRow.LastCell.Range.Text);

Práce s alternativním textem tabulky

Microsoft Word tabulky mají table title a table description které poskytují alternativní textové znázornění informací obsažených v tabulce.

In Aspose.Words, můžete také přidat název tabulky a popis pomocí Title a Description vlastnosti. Tyto vlastnosti mají význam pro dokumenty DOCX odpovídající ISO/IEC 29500. Při ukládání ve formátech dříve než ISO/IEC 29500, tyto vlastnosti jsou ignorovány.

Následující příklad kódu ukazuje, jak nastavit vlastnosti názvu a popisu tabulky:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git.
Document doc = new Document(MyDir + "Tables.docx");
Table table = (Table) doc.GetChild(NodeType.Table, 0, true);
table.Title = "Test title";
table.Description = "Test description";
OoxmlSaveOptions options = new OoxmlSaveOptions { Compliance = OoxmlCompliance.Iso29500_2008_Strict };
doc.CompatibilityOptions.OptimizeFor(Aspose.Words.Settings.MsWordVersion.Word2016);
doc.Save(ArtifactsDir + "WorkingWithTableStylesAndFormatting.TableTitleAndDescription.docx", options);