用 C# 中的表格替換 Word 中的文本
這個主題只是我們在 Spire.Doc 論壇上的一位用戶提出的另一個請求。為了讓更多人了解這個功能,我們將在文章中通過一個示例演示來展示整個過程。此外,我們想提醒您,我們?yōu)楦顿M用戶和測試用戶提供免費的定制演示。
作為一個專業(yè)的 .NET Word 組件,Spire.Doc 使開發(fā)人員能夠?qū)⒅付ǘ温涮鎿Q為新創(chuàng)建的表格或現(xiàn)有表格。在本例中,示例 word 文件主體中的第 3 段將替換為新建的表格。
測試文件:
用表格替換文本的代碼片段:
第 1 步:新建一個word文檔并加載測試文件。
Document doc = new Document(); doc.LoadFromFile(@"..\..\test.docx");
第 2 步:通過找到關(guān)鍵文本字符串“classical antiquity science”返回 TextSection。
Section section = doc.Sections[0]; TextSelection selection = doc.FindString("classical antiquity science", true, true);
第 3 步:從TextSection返回TextRange,然后通過TextRange獲取OwnerParagraph。
TextRange range = selection.GetAsOneRange(); Paragraph paragraph = range.OwnerParagraph;
第 4 步:返回指定段落的從零開始的索引。
Body body = paragraph.OwnerTextBody; int index = body.ChildObjects.IndexOf(paragraph);
第 5 步:創(chuàng)建一個新表。
Table table = section.AddTable(true); table.ResetCells(3, 3);
第 6 步:刪除段落并將表格插入到集合中指定索引處。
body.ChildObjects.Remove(paragraph); body.ChildObjects.Insert(index, table);
第 7 步:保存并啟動文件。
doc.SaveToFile("result.doc", FileFormat.Doc); System.Diagnostics.Process.Start("result.doc");
結(jié)果:
完整的 C# 代碼:
using Spire.Doc; using Spire.Doc.Documents; using Spire.Doc.Fields; namespace ReplaceText { class Program { static void Main(string[] args) { Document doc = new Document(); doc.LoadFromFile(@"..\..\test.docx"); Section section = doc.Sections[0]; TextSelection selection = doc.FindString("classical antiquity science", true, true); TextRange range = selection.GetAsOneRange(); Paragraph paragraph = range.OwnerParagraph; Body body = paragraph.OwnerTextBody; int index = body.ChildObjects.IndexOf(paragraph); Table table = section.AddTable(true); table.ResetCells(3, 3); body.ChildObjects.Remove(paragraph); body.ChildObjects.Insert(index, table); doc.SaveToFile("result.doc", FileFormat.Doc); System.Diagnostics.Process.Start("result.doc"); } } }