Перенос данных между DataTable и Excel с использованием C#
В современных приложениях обработка табличных данных является одной из базовых функций. С помощью C# и библиотеки Spire.XLS for .NET можно легко реализовать конвертацию данных между DataTable и Excel. В этой статье объясняется, как записывать данные из DataTable в Excel и как считывать данные из Excel в DataTable.
Что такое Spire.XLS для .NET?
Spire.XLS for .NET — это мощный компонент для работы с файлами Excel, который поддерживает создание, чтение, редактирование и конвертацию файлов Excel в приложениях на .NET. Он позволяет разработчикам выполнять различные операции с Excel-файлами без необходимости установки Microsoft Excel. Библиотека поддерживает форматы файлов для версий Excel 2003, 2007, 2010, 2013, 2016 и других, обеспечивая высокую производительность и богатый функционал, что делает её подходящей для разработки отчетов, анализа данных и приложений для импорта/экспорта данных.
Основные возможности Spire.XLS
Создание и редактирование Excel-файлов : динамическое создание файлов Excel и изменение их содержимого.
Чтение данных из Excel : быстрое считывание данных из файлов Excel и импорт в DataTable или другие структуры данных.
Форматирование : поддержка стилей ячеек, цвета шрифта, стилей таблиц и др.
Графики и изображения : возможность вставки графиков и изображений в Excel.
Поддержка нескольких форматов : форматы .xlsx, .xls, .xlsm, .csv и др.
Как установить Spire.XLS для .NET
Установка Spire.XLS для .NET очень проста. Ниже приведены несколько способов:
1. Через NuGet Package Manager
Наиболее распространенный способ — выполнить следующую команду в проекте:
Install-Package Spire.XLS
2. Через Visual Studio
Откройте Visual Studio и перейдите к своему проекту.
Щелкните правой кнопкой мыши по названию проекта в Solution Explorer и выберите "Manage NuGet Packages" .
Во вкладке "Browse" найдите "Spire.XLS" .
Выберите Spire.XLS и нажмите "Install" .
3. Ручная установка
Если предпочитаете ручную установку, можно скачать соответствующие DLL-файлы с официального сайта Spire.XLS и добавить их в ссылки проекта.
После установки можно использовать Spire.XLS в проекте на C# для работы с Excel.
1. Запись данных из DataTable в Excel
Ниже приведены шаги и пример кода для записи данных из DataTable в Excel.
Пример кода
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] = "Houston"; 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();
}
}
}
Пояснение к коду
Создается экземпляр Workbook и очищается стандартный лист.
Создается DataTable, определяются колонки и вставляются данные.
Метод InsertDataTable записывает данные из DataTable в Excel.
Метод SaveToFile сохраняет данные в Excel-файл.
2. Чтение данных из Excel в DataTable
Далее показано, как считать данные из Excel-файла в DataTable.
Пример кода
using Spire.Xls;
using System.Data;
using System.Windows.Forms;
namespace ReadExcelIntoDataTable
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
// Создаем объект Workbook
Workbook wb = new Workbook();
// Загружаем существующий Excel-файл
wb.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Input.xlsx");
// Получаем первый лист
Worksheet sheet = wb.Worksheets[0];
// Экспорт данных листа в DataTable
DataTable dataTable = sheet.ExportDataTable();
// Привязываем DataTable к DataGridView
dataGridView1.DataSource = dataTable;
// Освобождаем ресурсы
wb.Dispose();
}
}
}
Пояснение к коду
Создается экземпляр Workbook и загружается указанный Excel-файл.
Получается первый лист, затем вызывается метод ExportDataTable для экспорта данных.
Экспортированные данные привязываются к DataGridView для отображения.
Освобождаются ресурсы Workbook.
Итог
С помощью библиотеки Spire.XLS for .NET можно легко конвертировать данные между DataTable и Excel. Такой подход значительно повышает эффективность разработки при анализе данных, создании отчетов и обработке информации. Надеемся, что примеры кода из этой статьи помогут вам лучше понять и применить данную технологию.