Как удалить формулы из ячеек на C# и .NET

В современном мире автоматизации и обработки данных Excel становится незаменимым инструментом для бизнеса, аналитики и разработки решений. Один из наиболее распространенных сценариев — необходимость очистки листов, например, удаление формул из ячеек, что приводит к их преобразованию в статические значения. В этой статье мы рассмотрим, как реализовать удаление формул из файлов Excel на C# и .NET с помощью библиотеки SautinSoft.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>
        /// Delete formulasin the cell range.
        /// </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("A7", "B12");
            foreach (ExcelCell cell in range)
            {
                cell.Formula = null;
            }
            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>
		''' Delete formulasin the cell range.
		''' </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("A7", "B12")
			For Each cell As ExcelCell In range
				cell.Formula = Nothing
			Next cell
			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. Если вам нужна помощь в создании, изменении или преобразовании документов в различных форматах, мы можем вам помочь. Мы напишем для вас любой пример кода абсолютно бесплатно.