Как найти и заменить значение ячейки на C# и .NET

В современном мире автоматизация обработки данных становится неотъемлемой частью бизнес-процессов. Microsoft Excel остаётся одним из самых популярных инструментов для работы с электронными таблицами. Однако часто возникает необходимость автоматизировать задачи поиска и замены значений внутри файла, будь то обновление устаревших данных, массовое редактирование или подготовка отчётов.

В этой статье мы рассмотрим, как реализовать поиск и замену ячеек в документе Excel на C# и .NET, используя мощную и удобную библиотеку SautinSoft.Excel. Мы рассмотрим преимущества такого подхода, покажем пример кода, расскажем, для каких задач он подходит и в каких случаях рекомендуется его использовать.

Автоматизация поиска и замены в Excel значительно повышает эффективность работы с данными:

  • Массовые обновления данных: например, исправление ошибочных имён или значений во всей таблице за считанные секунды.
  • Подготовка отчётов: автоматическое исправление данных перед экспортом.
  • Обслуживание баз данных и информационных систем: Excel выступает в качестве промежуточного инструмента.
  • Обновление шаблонов и документов: быстрое обновление данных без ручного вмешательства.

Практика показывает, что подобные решения в Excel встречаются в самых разных областях:

  • Финансовый и управленческий учет.
  • Аналитика и отчетность.
  • Интеграция данных из различных источников.
  • Разработка внутренних инструментов бизнес-процессов.

Полный код

using SautinSoft.Excel;
using System.IO;

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

            Sample();
        }

        /// <summary>
        /// Find and Replace Text.
        /// </summary>
		/// <remarks>
        /// Details: 
        /// </remarks>
        static void Sample()
        {
            string inpFile = @"..\..\..\Example.xlsx";
            string outFile = @"..\..\..\Result.xlsx";

            ExcelDocument excelDocument = ExcelDocument.Load(inpFile);
            CellRange range = excelDocument.Worksheets[0].Cells.GetSubrange("A2", "C9");
            range.FindText("Random", false, true, out int row, out int col);
            if (row > -1 && col > -1) excelDocument.Worksheets[0].Cells[row, col].Value = "Replace";
            excelDocument.Save(outFile);

            // Important for Linux: Install MS Fonts
            // sudo apt install ttf-mscorefonts-installer -y

            // Open the result for demonstration purposes.
            System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(outFile) { UseShellExecute = true });
        }
    }
}

Download

Imports SautinSoft.Excel
Imports System.IO

Namespace Example
	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			' Get your free key here:   
			' https://sautinsoft.com/start-for-free/

			Sample()
		End Sub

		''' <summary>
		''' Find and Replace Text.
		''' </summary>
		''' <remarks>
		''' Details: 
		''' </remarks>
		Private Shared Sub Sample()
			Dim inpFile As String = "..\..\..\Example.xlsx"
			Dim outFile As String = "..\..\..\Result.xlsx"

			Dim excelDocument As ExcelDocument = ExcelDocument.Load(inpFile)
			Dim range As CellRange = excelDocument.Worksheets(0).Cells.GetSubrange("A2", "C9")
			Dim row As Integer
			Dim col As Integer
			range.FindText("Random", False, True, row, col)
			If row > -1 AndAlso col > -1 Then
				excelDocument.Worksheets(0).Cells(row, col).Value = "Replace"
			End If
			excelDocument.Save(outFile)

			' Important for Linux: Install MS Fonts
			' sudo apt install ttf-mscorefonts-installer -y

			' Open the result for demonstration purposes.
			System.Diagnostics.Process.Start(New System.Diagnostics.ProcessStartInfo(outFile) With {.UseShellExecute = True})
		End Sub
	End Class
End Namespace

Download


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



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

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