Найти и заменить в ElementCollection с помощью C# и .NET


Этот пример кода показывает нам, как найти пустые абзацы в документе, заменить все таблицы на параграфы.

Полный код

using System;
using SautinSoft.Document;
using SautinSoft.Document.Tables;

namespace Example
{
    class Program
    {
        static void Main(string[] args)
        {
            // Get your free 100-day key here:   
            // https://sautinsoft.com/start-for-free/

            FindAndReplace();
        }
        /// <summary>
        /// Find an empty paragraphs in document, replace all tables into paragraphs.
        /// </summary>
        /// <remarks>
        /// Details: https://sautinsoft.com/products/document/help/net/developer-guide/elementcollection-find-replace.php
        /// </remarks>
        static void FindAndReplace()
        {
            string filePath = @"..\..\..\example.docx";
			string result1 = @"ResultEmptyParagraphs.docx";
			string result2 = @"ResultReplacedTables.docx";

            DocumentCore dc = DocumentCore.Load(filePath);
            foreach (Paragraph par in dc.Sections[0].GetChildElements(false,ElementType.Paragraph))
            {
                if ( par.Inlines.Count == 0)
                {
                    par.Inlines.Add(new Run(dc, "<empty paragraph>", new CharacterFormat() { BackgroundColor = Color.Black, FontColor = Color.White }));
                }
            }
            dc.Save(result1);

            for (int i = 0; i < dc.Sections[0].Blocks.Count; i++)
            {
                if (dc.Sections[0].Blocks[i] is Table)
                {
                    dc.Sections[0].Blocks[i] = new Paragraph(dc,new Run(dc, "HERE WAS THE TABLE", new CharacterFormat() { BackgroundColor = Color.Yellow}));
                }
            }
			dc.Save(result2);

            // Show the result.
            System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(result1) { UseShellExecute = true });
            System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(result2) { UseShellExecute = true });
        }
    }
}

Download

Imports System
Imports SautinSoft.Document
Imports SautinSoft.Document.Tables

Module Sample
    Sub Main()
        FindAndReplace()
    End Sub
    ''' Get your free 100-day key here:   
    ''' https://sautinsoft.com/start-for-free/
    ''' <summary>
    ''' Find an empty paragraphs in document, replace all tables into paragraphs.
    ''' </summary>
    ''' <remarks>
    ''' Details: https://sautinsoft.com/products/document/help/net/developer-guide/elementcollection-find-replace.php
    ''' </remarks>
    Sub FindAndReplace()
        Dim filePath As String = "..\..\..\example.docx"
        Dim result1 As String = "ResultEmptyParagraphs.docx"
        Dim result2 As String = "ResultReplacedTables.docx"

        Dim dc As DocumentCore = DocumentCore.Load(filePath)
        For Each par As Paragraph In dc.Sections(0).GetChildElements(False, ElementType.Paragraph)
            If par.Inlines.Count = 0 Then
                par.Inlines.Add(New Run(dc, "<empty paragraph>", New CharacterFormat() With {
                        .BackgroundColor = Color.Black,
                        .FontColor = Color.White
                    }))
            End If
        Next par
        dc.Save(result1)

        Dim i As Integer = 0
        Do While i < dc.Sections(0).Blocks.Count
            If TypeOf dc.Sections(0).Blocks(i) Is Table Then
                dc.Sections(0).Blocks(i) = New Paragraph(dc, New Run(dc, "HERE WAS THE TABLE", New CharacterFormat() With {.BackgroundColor = Color.Yellow}))
            End If
            i += 1
        Loop
        dc.Save(result2)

        ' Show the result.
        System.Diagnostics.Process.Start(New System.Diagnostics.ProcessStartInfo(result1) With {.UseShellExecute = True})
        System.Diagnostics.Process.Start(New System.Diagnostics.ProcessStartInfo(result2) With {.UseShellExecute = True})
    End Sub
End Module

Download


Если вам нужен пример кода или у вас есть вопрос: напишите нам по адресу support@sautinsoft.com или спросите в онлайн-чате (правый нижний угол этой страницы) или используйте форму ниже:



Вопросы и предложения всегда приветствуются!

Мы разрабатываем компоненты .Net с 2002 года. Мы знаем форматы PDF, DOCX, RTF, HTML, XLSX и Images. Если вам нужна помощь в создании, изменении или преобразовании документов в различных форматах, мы можем вам помочь. Мы напишем для вас любой пример кода абсолютно бесплатно.