Как записать данные в файл Excel на языке C#

Электронная таблица Excel широко известна как надежный инструмент для представления и хранения данных. Используя возможности языка C#, вы можете автоматизировать процесс записи данных в Excel, сэкономив время и силы. В этой статье я расскажу вам о процессе записи различных типов и структур данных в Excel с помощью бесплатной библиотеки .NET Excel. Запись различных типов данных в Excel на C# Запись массивов в Excel на C# Запись DataTable в Excel на C# Запись DataView в Excel на C# Запись списков в Excel на C# Введение в бесплатный Spire.XLS for .NET Прежде чем мы погрузимся в код, нам необходимо понять, какой инструмент мы будем использовать: Free Spire.XLS for .NET. Эта библиотека представляет собой мощный API, предназначенный для создания, изменения и преобразования документов Excel в любом приложении .NET. Эту библиотеку можно установить через NuGet с помощью следующей команды: PM> Install-Package FreeSpire.XLS Запись различных типов данных в Excel на C# Free Spire.XLS предлагает класс Workbook и класс Worksheet для представления рабочей книги и рабочего листа соответственно. Пользователи могут получить доступ к определенной ячейке, используя свойство Worksheet.Range[int row, int column], которое предоставляет объект CellRange. Чтобы ввести в ячейку текст, числа, даты, временные интервалы или булевы значения, можно использовать свойства Value, NumberValue, DataTimeValue, TimeSpenValue и BooleanValue в объекте CellRange. В следующем примере кода показано, как записать в Excel различные типы данных на языке C#. using Spire.Xls; namespace WriteDifferentDataTypesToExcel { class Program { static void Main(string[] args) { // Создать объект Workbook Workbook workbook = new Workbook(); // Удалить листы по умолчанию workbook.Worksheets.Clear(); // Добавить лист и задать ему имя Worksheet worksheet = workbook.Worksheets.Add("WriteToCells"); // Записать строку в ячейку worksheet.Range[1, 1].Value = "Hello, World"; // Записать число в ячейку и отформатировать число worksheet.Range[2, 1].NumberValue = 12345; worksheet.Range[2, 1].NumberFormat = "#,##0.00"; // Записать дату в ячейку и отформатировать дату worksheet.Range[3, 1].DateTimeValue = DateTime.Now; worksheet.Range[3, 1].NumberFormat = "yyyy-mm-dd"; // Записать логическое значение в ячейку worksheet.Range[4, 1].BooleanValue = true; // Записать временной интервал в ячейку worksheet.Range[5, 1].TimeSpanValue = new TimeSpan(1, 30, 0); worksheet.Range[5, 1].NumberFormat = "[h]:mm:ss"; // Выравнять содержимое по центру worksheet.Columns[0].HorizontalAlignment = HorizontalAlignType.Center; // Установить ширину колонки worksheet.Columns[0].ColumnWidth = 20; // Сохранить в файл Excel workbook.SaveToFile("WriteDataToCells.xlsx", ExcelVersion.Version2016); // Освободить ресурсы workbook.Dispose(); } } } Запись массивов в Excel на C# Бесплатный Spire.XLS предлагает метод Worksheet.InsertArray(string[] stringArray, int firstRow, int firstColumn, bool isVertical), позволяющий разработчикам записывать одномерные или двумерные массивы в заданный диапазон ячеек рабочего листа. Тип массива может выходить за рамки строковых массивов и включать массивы Int, Double, Object или DateTime. В следующем коде приведен пример. using Spire.Xls; namespace WriteArraysToExcel { class Program { static void Main(string[] args) { // Создать экземпляр Workbook Workbook workbook = new Workbook(); // Удалить листы по умолчанию workbook.Worksheets.Clear(); // Добавить лист и задать ему имя Worksheet worksheet = workbook.Worksheets.Add("InsertArray"); // Создать одномерный массив string[] oneDimensionalArray = new string[] { "January", "February", "March", "April", "May", "June", "July", "August" }; // Записать массив в первую строку листа worksheet.InsertArray(oneDimensionalArray, 1, 1, true); // Создать двумерный массив string[,] twoDimensionalArray = new string[,]{ {"Name", "Age", "Sex", "Dept.", "Tel."}, {"John", "25", "Male", "Development","654214"}, {"Albert", "24", "Male", "Support","624847"}, {"Amy", "26", "Female", "Sales","624758"} }; // Записать массив в лист, начиная с ячейки C3 worksheet.InsertArray(twoDimensionalArray, 3, 3); // Авторазмер ширины колонок в используемом диапазоне worksheet.AllocatedRange.AutoFitColumns(); // Сохранить в файл Excel

Mar 27, 2025 - 03:39
 0
Как записать данные в файл Excel на языке C#

Электронная таблица Excel широко известна как надежный инструмент для представления и хранения данных. Используя возможности языка C#, вы можете автоматизировать процесс записи данных в Excel, сэкономив время и силы.

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

  • Запись различных типов данных в Excel на C#
  • Запись массивов в Excel на C#
  • Запись DataTable в Excel на C#
  • Запись DataView в Excel на C#
  • Запись списков в Excel на C#

Введение в бесплатный Spire.XLS for .NET

Прежде чем мы погрузимся в код, нам необходимо понять, какой инструмент мы будем использовать: Free Spire.XLS for .NET. Эта библиотека представляет собой мощный API, предназначенный для создания, изменения и преобразования документов Excel в любом приложении .NET.

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

PM> Install-Package FreeSpire.XLS

Запись различных типов данных в Excel на C#

Free Spire.XLS предлагает класс Workbook и класс Worksheet для представления рабочей книги и рабочего листа соответственно. Пользователи могут получить доступ к определенной ячейке, используя свойство Worksheet.Range[int row, int column], которое предоставляет объект CellRange.

Чтобы ввести в ячейку текст, числа, даты, временные интервалы или булевы значения, можно использовать свойства Value, NumberValue, DataTimeValue, TimeSpenValue и BooleanValue в объекте CellRange.

В следующем примере кода показано, как записать в Excel различные типы данных на языке C#.

using Spire.Xls;

namespace WriteDifferentDataTypesToExcel
{
    class Program
    {
        static void Main(string[] args)
        {

            // Создать объект Workbook
            Workbook workbook = new Workbook();

            // Удалить листы по умолчанию
            workbook.Worksheets.Clear();

            // Добавить лист и задать ему имя
            Worksheet worksheet = workbook.Worksheets.Add("WriteToCells");

            // Записать строку в ячейку
            worksheet.Range[1, 1].Value = "Hello, World";

            // Записать число в ячейку и отформатировать число
            worksheet.Range[2, 1].NumberValue = 12345;
            worksheet.Range[2, 1].NumberFormat = "#,##0.00";

            // Записать дату в ячейку и отформатировать дату
            worksheet.Range[3, 1].DateTimeValue = DateTime.Now;
            worksheet.Range[3, 1].NumberFormat = "yyyy-mm-dd";

            // Записать логическое значение в ячейку
            worksheet.Range[4, 1].BooleanValue = true;

            // Записать временной интервал в ячейку
            worksheet.Range[5, 1].TimeSpanValue = new TimeSpan(1, 30, 0);
            worksheet.Range[5, 1].NumberFormat = "[h]:mm:ss";

            // Выравнять содержимое по центру
            worksheet.Columns[0].HorizontalAlignment = HorizontalAlignType.Center;

            // Установить ширину колонки
            worksheet.Columns[0].ColumnWidth = 20;

            // Сохранить в файл Excel
            workbook.SaveToFile("WriteDataToCells.xlsx", ExcelVersion.Version2016);

            // Освободить ресурсы
            workbook.Dispose();
        }
    }
}

Запись массивов в Excel на C#

Бесплатный Spire.XLS предлагает метод Worksheet.InsertArray(string[] stringArray, int firstRow, int firstColumn, bool isVertical), позволяющий разработчикам записывать одномерные или двумерные массивы в заданный диапазон ячеек рабочего листа. Тип массива может выходить за рамки строковых массивов и включать массивы Int, Double, Object или DateTime.

В следующем коде приведен пример.

using Spire.Xls;

namespace WriteArraysToExcel
{
    class Program
    {
        static void Main(string[] args)
        {
            // Создать экземпляр Workbook
            Workbook workbook = new Workbook();

            // Удалить листы по умолчанию
            workbook.Worksheets.Clear();

            // Добавить лист и задать ему имя
            Worksheet worksheet = workbook.Worksheets.Add("InsertArray");

            // Создать одномерный массив
            string[] oneDimensionalArray = new string[] { "January", "February", "March", "April", "May", "June", "July", "August" };

            // Записать массив в первую строку листа
            worksheet.InsertArray(oneDimensionalArray, 1, 1, true);

            // Создать двумерный массив
            string[,] twoDimensionalArray = new string[,]{

                {"Name", "Age", "Sex", "Dept.", "Tel."},
                {"John", "25", "Male", "Development","654214"},
                {"Albert", "24", "Male", "Support","624847"},
                {"Amy", "26", "Female", "Sales","624758"}
            };

            // Записать массив в лист, начиная с ячейки C3
            worksheet.InsertArray(twoDimensionalArray, 3, 3);

            // Авторазмер ширины колонок в используемом диапазоне
            worksheet.AllocatedRange.AutoFitColumns();

            // Сохранить в файл Excel
            workbook.SaveToFile("InsertArrays.xlsx", ExcelVersion.Version2016);

            // Освободить ресурсы
            workbook.Dispose();
        }
    }
}

Запись DataTable в Excel на C#

Для экспорта данных из таблицы DataTable на рабочий лист можно использовать метод Worksheet.InsertDataTable(DataTable dataTable, bool columnHeaders, inst firstRow, int firstColumn, bool transTypes).

using System.Data;
using Spire.Xls;

namespace WriteDataTableToExcel
{
    class Program
    {
        static void Main(string[] args)
        {
            // Создать экземпляр Workbook
            Workbook workbook = new Workbook();

            // Удалить листы по умолчанию
            workbook.Worksheets.Clear();

            // Добавить лист и задать ему имя
            Worksheet worksheet = workbook.Worksheets.Add("InsertDataTable");

            // Создать объект DataTable
            DataTable dataTable = new DataTable();
            dataTable.Columns.Add("No", typeof(Int32));
            dataTable.Columns.Add("Name", typeof(String));
            dataTable.Columns.Add("City", typeof(String));

            // Добавить строки и данные
            DataRow dr = dataTable.NewRow();
            dr[0] = 1;
            dr[1] = "Tom";
            dr[2] = "New York";
            dataTable.Rows.Add(dr);
            dr = dataTable.NewRow();
            dr[0] = 2;
            dr[1] = "Jerry";
            dr[2] = "Huston";
            dataTable.Rows.Add(dr);
            dr = dataTable.NewRow();
            dr[0] = 3;
            dr[1] = "Dave";
            dr[2] = "Florida";
            dataTable.Rows.Add(dr);

            // Записать DataTable в лист
            worksheet.InsertDataTable(dataTable, true, 1, 1, true);

            // Сохранить в файл Excel
            workbook.SaveToFile("InsertDataTable.xlsx", ExcelVersion.Version2016);

            // Освободить ресурсы
            workbook.Dispose();
        }
    }
}

Запись DataView в Excel на C#

Для экспорта данных из DataView на рабочий лист можно использовать метод Worksheet.InsertDataView(DataView dataView, bool columnHeaders, int firstRow, int firstColumn, bool transTypes).

using System.Data;
using Spire.Xls;

namespace WriteDataViewToExcel
{
    class Program
    {
        static void Main(string[] args)
        {
            // Создать экземпляр Workbook
            Workbook workbook = new Workbook();

            // Удалить листы по умолчанию
            workbook.Worksheets.Clear();

            // Добавить лист и задать ему имя
            Worksheet worksheet = workbook.Worksheets.Add("InsertDataView");

            // Создать DataTable
            DataTable table = new DataTable("Employees");
            table.Columns.Add("Id", typeof(int));
            table.Columns.Add("Name", typeof(string));
            table.Columns.Add("Age", typeof(int));

            // Добавить несколько образцов данных
            table.Rows.Add(1, "John Doe", 30);
            table.Rows.Add(2, "Jane Smith", 35);
            table.Rows.Add(3, "Bob Johnson", 40);
            table.Rows.Add(4, "Bill Hall", 29);

            // Создать DataView из DataTable
            DataView dataview = new DataView(table);

            // Отсортировать DataView по колонке "Name"
            dataview.Sort = "Name ASC";

            worksheet.InsertDataView(dataview, true, 1, 1, true);

            // Выравнять содержимое по левому краю
            worksheet.AllocatedRange.HorizontalAlignment = HorizontalAlignType.Left;

            // Установить ширину колонки
            worksheet.AllocatedRange.ColumnWidth = 14;

            // Сделать текст в первой строке жирным
            worksheet.Rows[0].Style.Font.IsBold = true;

            // Сохранить в файл Excel
            workbook.SaveToFile("InsertDataView.xlsx", ExcelVersion.Version2016);

            // Освободить ресурсы
            workbook.Dispose();
        }
    }
}

Запись списка в Excel на C#

Free Spire.XLS не предлагает прямого метода, поддерживающего запись списков в Excel. Однако вы можете преобразовать списки в DataTable, а затем записать DataTable в Excel с помощью метода Worksheet.InsertDataTable().

using Spire.Xls;
using System.Data;

namespace WriteListToExcel
{
    class Program
    {
        static void Main(string[] args)
        {
            // Создать экземпляр Workbook
            Workbook workbook = new Workbook();

            // Удалить листы по умолчанию
            workbook.Worksheets.Clear();

            // Добавить лист и задать ему имя
            Worksheet worksheet = workbook.Worksheets.Add("InsertList");

            // Создать список
            List employees = new List{

            new Employee("John", "Doe", 35, "Sales", 5000),
            new Employee("Jane", "Smith", 28, "Marketing", 4000),
            new Employee("Mike", "Johnson", 42, "IT", 6000),
            new Employee("Emily", "Brown", 32, "Sales", 5500),
            new Employee("David", "Wilson", 40, "IT", 6500)

             };

            // Преобразовать список в DataTable
            DataTable dataTable = ConvertListToDataTable(employees);

            // Записать DataTable в лист
            worksheet.InsertDataTable(dataTable, true, 1, 1, true);

            // Установить ширину колонки
            worksheet.AllocatedRange.ColumnWidth = 12;

            // Выравнять содержимое по левому краю
            worksheet.AllocatedRange.HorizontalAlignment = HorizontalAlignType.Left;

            // Сохранить в файл Excel
            workbook.SaveToFile("InsertList.xlsx", ExcelVersion.Version2016);

            // Освободить ресурсы
            workbook.Dispose();
        }

        static DataTable ConvertListToDataTable(List employees)
        {
            DataTable dataTable = new DataTable();

            // Добавить колонки
            dataTable.Columns.Add("FirstName", typeof(string));
            dataTable.Columns.Add("LastName", typeof(string));
            dataTable.Columns.Add("Age", typeof(int));
            dataTable.Columns.Add("Department", typeof(string));
            dataTable.Columns.Add("Salary", typeof(decimal));

            // Добавить строки
            foreach (var employee in employees)
            {
                DataRow row = dataTable.NewRow();
                row["FirstName"] = employee.FirstName;
                row["LastName"] = employee.LastName;
                row["Age"] = employee.Age;
                row["Department"] = employee.Department;
                row["Salary"] = employee.Salary;
                dataTable.Rows.Add(row);
            }

            return dataTable;
        }
    }

    class Employee
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public int Age { get; set; }
        public string Department { get; set; }
        public decimal Salary { get; set; }

        public Employee(string firstName, string lastName, int age, string department, decimal salary)
        {
            FirstName = firstName;
            LastName = lastName;
            Age = age;
            Department = department;
            Salary = salary;
        }
    }
}

Заключение

В этой статье представлено полное руководство по записи различных типов и структур данных в Excel с помощью C#. Независимо от того, работаете ли вы с массивами, таблицами DataTables, DataViews или списками, у вас есть инструменты для оптимизации задач управления данными и создания эффективных рабочих процессов.