为有中文需求的客户提供多渠道中文技术支持.

Fri Mar 17, 2023 6:49 am

以下為取代字串的方式代碼
Code: Select all
Document document = new Document();
document.LoadFromFile(@"E:\Work\Documents\WordDocuments\New Zealand.docx");
document.Replace("Peter", "Sam", true, true);
document.SaveToFile("Replace.docx", FileFormat.Docx);


我想要的是以下為文件內容範例

The soup is so...that hot that Peter and Peter

Hi Peter is very good

我只想要將段落1 所有的Peter 換成 Sam 但段落2的Sam 不要被替換到 如下方範例

The soup is so...that hot that Sam and Sam

Hi Peter is very good

請問可以做到嗎?

yaowen2022
 
Posts: 17
Joined: Mon Mar 06, 2023 8:52 am

Mon Mar 20, 2023 6:43 am

您好,

感謝您的諮詢。
現時我們的Spire.Doc現時還不支持直接替換某個段落的文字,但是您可以通過查找到所有符合您要求的文字,然後獲取其所在段落並判斷段落索引值來達到相同的效果。 您可以參考以下程式碼:
Code: Select all
            Document document = new Document();
            document.LoadFromFile("test.docx");
           
            Spire.Doc.Documents.TextSelection[] textSelections = document.FindAllString("Peter",true,true);
            foreach (TextSelection selection in textSelections)
            {
                TextRange range = selection.GetAsOneRange();
                Paragraph ownerParagraph = range.OwnerParagraph;
                Section section = ownerParagraph.ParentSection;
                int index = section.Paragraphs.IndexOf(ownerParagraph);
                if (0 == index)
                {
                    range.Text = "Sam";
                }

            }

            document.SaveToFile("output.docx");

如果您還有其他問題,歡迎您隨時諮詢我們。

Best regards,
Triste
E-iceblue support team
User avatar

Triste.Dai
 
Posts: 1000
Joined: Tue Nov 15, 2022 3:59 am

Return to 中文技术支持