Как записать данные в файл 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

Электронная таблица 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 или списками, у вас есть инструменты для оптимизации задач управления данными и создания эффективных рабочих процессов.