Как добавить или прочитать формулы в Excel на C#

Добавление или чтение формул в Excel необходимо для автоматизации вычислений и улучшения анализа данных. Эта функциональность позволяет пользователям создавать динамические электронные таблицы, которые могут выполнять различные математические, статистические и логические операции. В этой статье я расскажу о том, как добавлять и читать формулы в Excel с помощью C# и Free Spire.XLS for .NET. Добавление формул в Excel на C# Чтение формул в Excel на C# Бесплатная библиотека для обработки файлов Excel Free Spire.XLS for .NET - это мощная библиотека, позволяющая разработчикам создавать, читать, записывать и манипулировать файлами Excel в приложениях .NET. Она поддерживает широкий спектр функций Excel, включая добавление и чтение формул в листах Excel. Библиотеку можно установить из NuGet с помощью следующей команды: PM> Install-Package FreeSpire.XLS Добавление формул в Excel на C В Spire.XLS, присвоив свойству CellRange.Formula строку, представляющую формулу в соответствии с синтаксисом формул Excel, вы можете задать формулу или функцию для ячейки. В следующем фрагменте кода показано, как добавлять различные виды формул в рабочие листы Excel на языке C#. using Spire.Xls; namespace AddFormulasAndFunctions { internal class Program { static void Main(string[] args) { // Инициализируем экземпляр класса Workbook Workbook workbook = new Workbook(); // Получаем первый лист Worksheet sheet = workbook.Worksheets[0]; // Объявляем две переменные: currentRow, currentFormula int currentRow = 1; string currentFormula; // Добавляем текст на лист и устанавливаем стиль ячейки sheet.Range[currentRow, 1].Text = "Тестовые данные:"; sheet.Range[currentRow, 1].Style.Font.IsBold = true; sheet.Range[currentRow, 1].Style.FillPattern = ExcelPatternType.Solid; sheet.Range[currentRow, 1].Style.KnownColor = ExcelColors.LightGreen1; sheet.Range[currentRow, 1].Style.Borders[BordersLineType.EdgeBottom].LineStyle = LineStyleType.Medium; // Добавляем числовые данные на лист sheet.Range[++currentRow, 1].NumberValue = 7.3; sheet.Range[currentRow, 2].NumberValue = 5; sheet.Range[currentRow, 3].NumberValue = 8.2; sheet.Range[currentRow, 4].NumberValue = 4; sheet.Range[currentRow, 5].NumberValue = 3; sheet.Range[currentRow, 6].NumberValue = 11.3; currentRow++; // Добавляем текст на лист и устанавливаем стиль ячейки sheet.Range[++currentRow, 1].Text = "Формулы"; sheet.Range[currentRow, 2].Text = "Результаты"; sheet.Range[currentRow, 1, currentRow, 2].Style.Font.IsBold = true; sheet.Range[currentRow, 1, currentRow, 2].Style.KnownColor = ExcelColors.LightGreen1; sheet.Range[currentRow, 1, currentRow, 2].Style.FillPattern = ExcelPatternType.Solid; sheet.Range[currentRow, 1, currentRow, 2].Style.Borders[BordersLineType.EdgeBottom].LineStyle = LineStyleType.Medium; // Добавляем текст и формулы на лист currentFormula = "=\"Hello\""; sheet.Range[++currentRow, 1].Text = "'" + currentFormula; sheet.Range[currentRow, 2].Formula = currentFormula; currentFormula = "=1+2+3+4+5-6-7+8-9"; sheet.Range[++currentRow, 1].Text = "'" + currentFormula; sheet.Range[currentRow, 2].Formula = currentFormula; // Добавляем текст и функции на лист // СРЕДНЕЕ currentFormula = "=AVERAGE(Sheet1!$D$2:F$2)"; sheet.Range[++currentRow, 1].Text = "'" + currentFormula; sheet.Range[currentRow, 2].Formula = currentFormula; // СЧЁТ currentFormula = "=COUNT(3,5,8,10,2,34)"; sheet.Range[++currentRow, 1].Text = "'" + currentFormula; sheet.Range[currentRow, 2].Formula = currentFormula; // И currentFormula = "=AND(TRUE)"; sheet.Range[currentRow, 1].Text = "'" + currentFormula; sheet.Range[currentRow++, 2].Formula = currentFormula; // СРЕДИНА currentFormula = "=MID(\"world\",4,2)"; sheet.Range[currentRow, 1].Text = "'" + currentFormula; sheet.Range[currentRow++, 2].Formula = currentFormula; // Устанавливаем ширину 1-й, 2-й и 3-й колонок sheet.SetColumnWidth(1, 32); sheet.SetColumnWidth(2, 16); sheet.SetColumnWidth(3, 16); // Создаем стиль ячейки CellStyle style = workbook.Styles.Add("Style"); // Устанавливаем горизонтальное выравнивание по левому краю style.HorizontalAlignment = HorizontalAlignType.Left; // Применяем стиль к листу sheet.ApplyStyle(style); // Сохраняем результи

Apr 3, 2025 - 10:03
 0
Как добавить или прочитать формулы в Excel на C#

Image description
Добавление или чтение формул в Excel необходимо для автоматизации вычислений и улучшения анализа данных. Эта функциональность позволяет пользователям создавать динамические электронные таблицы, которые могут выполнять различные математические, статистические и логические операции.

В этой статье я расскажу о том, как добавлять и читать формулы в Excel с помощью C# и Free Spire.XLS for .NET.

  • Добавление формул в Excel на C#

  • Чтение формул в Excel на C#

Бесплатная библиотека для обработки файлов Excel

Free Spire.XLS for .NET - это мощная библиотека, позволяющая разработчикам создавать, читать, записывать и манипулировать файлами Excel в приложениях .NET. Она поддерживает широкий спектр функций Excel, включая добавление и чтение формул в листах Excel.

Библиотеку можно установить из NuGet с помощью следующей команды:

PM> Install-Package FreeSpire.XLS

Добавление формул в Excel на C

В Spire.XLS, присвоив свойству CellRange.Formula строку, представляющую формулу в соответствии с синтаксисом формул Excel, вы можете задать формулу или функцию для ячейки. В следующем фрагменте кода показано, как добавлять различные виды формул в рабочие листы Excel на языке C#.

using Spire.Xls;

namespace AddFormulasAndFunctions
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // Инициализируем экземпляр класса Workbook
            Workbook workbook = new Workbook();

            // Получаем первый лист
            Worksheet sheet = workbook.Worksheets[0];

            // Объявляем две переменные: currentRow, currentFormula
            int currentRow = 1;
            string currentFormula;

            // Добавляем текст на лист и устанавливаем стиль ячейки
            sheet.Range[currentRow, 1].Text = "Тестовые данные:";
            sheet.Range[currentRow, 1].Style.Font.IsBold = true;
            sheet.Range[currentRow, 1].Style.FillPattern = ExcelPatternType.Solid;
            sheet.Range[currentRow, 1].Style.KnownColor = ExcelColors.LightGreen1;
            sheet.Range[currentRow, 1].Style.Borders[BordersLineType.EdgeBottom].LineStyle = LineStyleType.Medium;

            // Добавляем числовые данные на лист
            sheet.Range[++currentRow, 1].NumberValue = 7.3;
            sheet.Range[currentRow, 2].NumberValue = 5;
            sheet.Range[currentRow, 3].NumberValue = 8.2;
            sheet.Range[currentRow, 4].NumberValue = 4;
            sheet.Range[currentRow, 5].NumberValue = 3;
            sheet.Range[currentRow, 6].NumberValue = 11.3;

            currentRow++;

            // Добавляем текст на лист и устанавливаем стиль ячейки
            sheet.Range[++currentRow, 1].Text = "Формулы";
            sheet.Range[currentRow, 2].Text = "Результаты";
            sheet.Range[currentRow, 1, currentRow, 2].Style.Font.IsBold = true;
            sheet.Range[currentRow, 1, currentRow, 2].Style.KnownColor = ExcelColors.LightGreen1;
            sheet.Range[currentRow, 1, currentRow, 2].Style.FillPattern = ExcelPatternType.Solid;
            sheet.Range[currentRow, 1, currentRow, 2].Style.Borders[BordersLineType.EdgeBottom].LineStyle = LineStyleType.Medium;

            // Добавляем текст и формулы на лист
            currentFormula = "=\"Hello\"";
            sheet.Range[++currentRow, 1].Text = "'" + currentFormula;
            sheet.Range[currentRow, 2].Formula = currentFormula;


            currentFormula = "=1+2+3+4+5-6-7+8-9";
            sheet.Range[++currentRow, 1].Text = "'" + currentFormula;
            sheet.Range[currentRow, 2].Formula = currentFormula;

            // Добавляем текст и функции на лист
            // СРЕДНЕЕ
            currentFormula = "=AVERAGE(Sheet1!$D$2:F$2)";
            sheet.Range[++currentRow, 1].Text = "'" + currentFormula;
            sheet.Range[currentRow, 2].Formula = currentFormula;

            // СЧЁТ
            currentFormula = "=COUNT(3,5,8,10,2,34)";
            sheet.Range[++currentRow, 1].Text = "'" + currentFormula;
            sheet.Range[currentRow, 2].Formula = currentFormula;

            // И
            currentFormula = "=AND(TRUE)";
            sheet.Range[currentRow, 1].Text = "'" + currentFormula;
            sheet.Range[currentRow++, 2].Formula = currentFormula;

            // СРЕДИНА
            currentFormula = "=MID(\"world\",4,2)";
            sheet.Range[currentRow, 1].Text = "'" + currentFormula;
            sheet.Range[currentRow++, 2].Formula = currentFormula;


            // Устанавливаем ширину 1-й, 2-й и 3-й колонок
            sheet.SetColumnWidth(1, 32);
            sheet.SetColumnWidth(2, 16);
            sheet.SetColumnWidth(3, 16);

            // Создаем стиль ячейки
            CellStyle style = workbook.Styles.Add("Style");
            // Устанавливаем горизонтальное выравнивание по левому краю
            style.HorizontalAlignment = HorizontalAlignType.Left;
            // Применяем стиль к листу
            sheet.ApplyStyle(style);

            // Сохраняем результирующий файл
            workbook.SaveToFile("AddFormulasAndFunctions.xlsx", ExcelVersion.Version2016);
            workbook.Dispose();
        }
    }
}

Чтение формул в Excel на C

Чтобы проверить, содержит ли ячейка формулу или нет, можно использовать свойство CellRange.HasFormula. Если оно возвращает true, вы можете получить формулу ячейки с помощью свойства CellRange.Formula. Следующий код демонстрирует, как читать формулы в рабочем листе Excel с помощью C#.

using Spire.Xls;
using System.IO;
using System.Text;

namespace ReadFormulasAndFunctions
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // Инициализируем экземпляр класса Workbook
            Workbook workbook = new Workbook();

            // Загружаем файл Excel
            workbook.LoadFromFile("AddFormulasAndFunctions.xlsx");

            // Получаем первый лист
            Worksheet sheet = workbook.Worksheets[0];

            // Инициализируем экземпляр класса StringBuilder
            StringBuilder sb = new StringBuilder();

            // Получаем используемый диапазон листа
            CellRange usedRange = sheet.AllocatedRange;

            // Проходим по всем ячейкам в используемом диапазоне
            foreach (CellRange cell in usedRange)
            {
                // Проверяем, содержит ли текущая ячейка формулу/функцию
                if (cell.HasFormula)
                {
                    // Получаем имя ячейки
                    string cellName = cell.RangeAddressLocal;
                    // Получаем формулу/функцию
                    string formula = cell.Formula;
                    // Добавляем имя ячейки и формулу/функцию в StringBuilder
                    sb.AppendLine(cellName + " имеет формулу: " + formula);
                }
            }

            // Записываем содержимое StringBuilder в .txt файл
            File.WriteAllText("ReadFormulasAndFunctions.txt", sb.ToString());
        }
    }
}