Оглавление
Установлено через NuGet
PM> Install-Package Spire.XLS
Ссылки по теме
Файлы Excel остаются распространенным форматом хранения табличных данных, поэтому возможность эффективного чтения и извлечения из них информации имеет решающее значение. C#, используя обширные функциональные возможности .NET Framework, способен эффективно манипулировать данными. Использование C# для чтения файлов Excel и записывать свои данные в базы данных и таблицы данных или использовать данные для других целей — это отличное решение для разработчиков по манипулированию данными Excel.
В этой статье основное внимание уделяется тому, как использовать C# для чтения файлов Excel. Он включает в себя следующие части:
- Преимущества и API для чтения файлов Excel на C#
- Начало работы с чтением файлов Excel с использованием C#
- Чтение файлов Excel в текст с помощью кода C#
- Скрипт на C# для чтения файлов Excel в DataTable
- Код C# для чтения файлов Excel и вставки в базы данных
- Получите бесплатную лицензию на API
Преимущества и API для чтения файлов Excel на C#
Использование C# для чтения файлов Excel дает следующие преимущества:
- Автоматизация и масштабируемость: C# с .NET Framework и API позволяет автоматизировать задачи чтения файлов Excel, что позволяет эффективно обрабатывать большие объемы данных. Разработчики могут создавать сценарии или приложения, которые могут выполнять пакетную обработку, запланированные задачи или операции импорта/экспорта данных, экономя время и усилия.
- Гибкость и настройка: .NET Framework вместе с API-интерфейсами обеспечивает высокий уровень гибкости и настройки при работе с файлами Excel. Разработчики могут определять собственную логику для извлечения и преобразования данных, применения определенного форматирования или выполнения вычислений. Это позволяет адаптировать процесс чтения к конкретным требованиям или бизнес-правилам.
Однако чтение файлов Excel с использованием только C# и .NET Framework может оказаться сложной задачей. Собственная библиотека, предоставляемая .NET Framework для обработки файлов Excel, — Microsoft.Office.Interop.Excel. Однако использование этой библиотеки требует установки MS Excel, а логика кода для обработки файлов Excel с ее помощью чрезвычайно сложна, что затрудняет эффективное чтение файлов Excel. В результате разработчики предпочитают сторонние библиотеки для эффективной и удобной работы с файлами Excel.
Spire.XLS for .NET— это профессиональный API C# для обработки файлов Excel. Он обеспечивает обширную поддержку форматов и эффективное манипулирование данными Excel, включая чтение файлов Excel и запись данных в базу данных, таблицу данных и т. д. Пользователи могут скачайте Spire.XLS for .NET с официального сайта или установите его через NuGet.
PM> Install-Package Spire.XLS
Начало работы с чтением файлов Excel на C#
Spire.XLS for .NET позволяет разработчикам создавать, читать, записывать и манипулировать файлами Excel в своих .NET-приложениях с помощью простого кода.
Для эффективной работы со Spire.XLS вам придется взаимодействовать с различными классами, свойствами и методами. Вот таблица, в которой суммированы некоторые из основных из них вместе с их описаниями:
Элемент | Описание |
Класс рабочей книги | Представляет книгу Excel и предоставляет методы для чтения и управления ее содержимым. |
Класс рабочего листа | Представляет отдельный лист в книге. |
Метод Workbook.LoadFromFile | Загружает книгу Excel из файла. |
Свойство Workbook.Worksheets | Получает коллекцию листов в книге. |
Свойство Worksheet.Range[] | Получает диапазон ячеек на листе (индексы отсчитываются от 1). |
Свойство CellRange.Value | Получает или задает значение ячейки. |
Свойство CellRange.Text | Получает или задает отображаемый текст ячейки. |
Типичный рабочий процесс использования Spire.XLS for .NET для чтения файлов Excel включает следующие шаги:
- Загрузите файл Excel с помощью метода Workbook.LoadFromFile().
- Доступ к листам осуществляется через свойство Workbook.Worksheets[].
- Доступ к ячейкам осуществляется через свойство Worksheet.Range[].
- Доступ к отображаемому тексту в ячейках через свойство CellRange.Text или доступ к значению ячеек (текст, числа, формулы и т. д.) через свойство CellRange.Value.
- Извлекайте данные, записывайте их в текстовые файлы, базы данных и т. д. или выполняйте другие необходимые операции.
- Чтобы экспортировать значения ячеек в таблицу данных, разработчики могут напрямую использовать метод Worksheet.ExportDataTable(), и он вернет объект DataTable.
- Альтернативно, разработчики также могут напрямую конвертировать книгу с помощью метода Workbook.SaveToFile() в любой поддерживаемый формат.
Короче говоря, этот API предоставляет классы и свойства, которые позволяют разработчикам загружать файлы Excel и читать их содержимое с помощью простого кода, что делает чтение файлов Excel с помощью C# эффективным и простым. Кроме того, это позволяет напрямую преобразование книг и листов в PDF, HTML, XML и другие форматы файлов.
C# для чтения файлов Excel в текст
Шаги по чтению файлов Excel и записи данных в текстовые файлы с помощью C#:
- Импортируйте необходимые пространства имен.
- Создайте объект класса Workbook и загрузите файл Excel с помощью метода Workbook.LoadFromFile() .
- Получите первый лист с помощью свойства Workbook.Worksheets[].
- Создайте текстовый файл для записи данных на лист.
- Выполняйте итерацию по выделенным строкам и столбцам, получайте доступ к ячейкам через свойство Worksheet.Range[] и получайте отображаемый текст каждой ячейки через свойство CellRange.Text и записывайте его в текстовый файл.
- Освободите ресурсы.
Пример кода:
- C#
using Spire.Xls; using System.IO; class Program { static void Main(string[] args) { // Load the Excel file Workbook workbook = new Workbook(); workbook.LoadFromFile("Sample.xlsx"); // Get the first worksheet Worksheet worksheet = workbook.Worksheets[0]; // Create an output text file string outputFile = "Output.txt"; StreamWriter writer = new StreamWriter(outputFile); // Iterate through the rows and columns of the worksheet and write the data to the text file for (int row = 1; row <= worksheet.LastRow; row++) { for (int col = 1; col <= worksheet.LastColumn; col++) { CellRange range = worksheet.Range[row, col]; string cellValue = range.Text == null ? string.Empty : range.Text.ToString(); writer.Write(cellValue + "\t"); // Separate cell data using a tab character } writer.WriteLine(); // Write a line break } // Close the writer and save the text file writer.Close(); // Release resources workbook.Dispose(); } }
The reading result:
Код на C Sharp для чтения файлов Excel в таблицы данных
DataTable— это объект, представляющий таблицу данных в .NET Framework. Он используется для хранения данных в памяти и управления ими и может выполнять такие операции, как сортировка, фильтрация, изменение и экспорт. Разработчики могут использовать C# для чтения данных файла Excel и записи их в объект DataTable, что упрощает дальнейшую обработку данных. Ниже приведены шаги:
- Импортируйте необходимые пространства имен.
- Создайте объект класса Workbook и загрузите файл Excel с помощью метода Workbook.LoadFromFile().
- Получите первый лист с помощью свойства Workbook.Worksheets[].
- Экспортируйте данные из листа в объект DataTable с помощью метода Worksheet.ExportDataTable().
- Освободите ресурсы.
Пример кода:
- C#
using Spire.Xls; using System.Data; namespace ExcelToAccess { class Program { static void Main(string[] args) { // Create an object of Workbook class Workbook workbook = new Workbook(); // Load an Excel file workbook.LoadFromFile("Sample.xlsx"); // Get the first worksheet Worksheet worksheet = workbook.Worksheets[0]; // Export the data from the worksheet to a DataTable object DataTable dataTable = worksheet.ExportDataTable(); workbook.Dispose(); } } }
Код C# для чтения файлов Excel и вставки в базы данных
В этом примере показано, как использовать код C# для записи данных листа Excel в базу данных с помощью базы данных Access. Для этого метода также требуется пространство имен System.Data.OleDB. Если используемая вами .NET Framework не имеет его, вы можете установить его, введя следующий код в консоли управления пакетами:
Install-Package System.Data.OleDb
Шаги для чтения файла Excel и вставки в базу данных следующие:
- Импортируйте необходимые пространства имен.
- Создайте объект класса Workbook и загрузите файл Excel с помощью метода Workbook.LoadFromFile().
- Получите первый лист с помощью свойства Workbook.Worksheets[].
- Получите имя листа в качестве имени таблицы, обратившись к свойству Worksheet.Name.
- Получите первую строку как имена столбцов, обратившись к объекту CellRange первой строки с помощью свойства Worksheet.Rows[] и сохранив значение каждого столбца в массиве строк.
- Подключитесь к базе данных Access с помощью OleDbConnection, указав строку подключения и путь к файлу базы данных.
- Создайте таблицу данных, динамически создав строку запроса SQL для создания таблицы, включая имя таблицы, имена столбцов и типы данных.
- Выполните запрос на создание таблицы, используя объект OleDbCommand и метод ExecuteNonQuery.
- Вставьте данные, пройдя по каждой строке листа Excel (начиная со второй строки) и создав оператор вставки с параметризованными запросами. Вставьте каждую строку данных в таблицу базы данных Access.
- Закройте соединение с базой данных и освободите ресурсы.
Пример кода:
- C#
using Spire.Xls; using System.Data.OleDb; class Program { static void Main(string[] args) { // Set the Excel file path string excelFilePath = "Sample.xlsx"; // Set the Access database file path string accessDbFilePath = "Sample.accdb"; // Load the Excel file Workbook workbook = new Workbook(); workbook.LoadFromFile(excelFilePath); // Get the first worksheet Worksheet worksheet = workbook.Worksheets[0]; // Use the worksheet name as the table name string tableName = worksheet.Name; // Get the first row as column names CellRange headerRange = worksheet.Rows[0]; string[] columnNames = new string[headerRange.Columns.Length]; for (int i = 0; i < headerRange.Columns.Length; i++) { columnNames[i] = headerRange.Columns[i].Value.Replace(" ", "_"); } // Connect to the Access database string connectionString = $"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={accessDbFilePath};Persist Security Info=False;"; using (OleDbConnection connection = new OleDbConnection(connectionString)) { connection.Open(); // Create the table string createTableQuery = $"CREATE TABLE [{tableName}] ({string.Join(", ", columnNames.Select(c => $"[{c}] Memo"))})"; using (OleDbCommand createTableCommand = new OleDbCommand(createTableQuery, connection)) { createTableCommand.ExecuteNonQuery(); } // Insert data string insertQuery = $"INSERT INTO [{tableName}] ({string.Join(", ", columnNames.Select(c => $"[{c}]"))}) VALUES ({string.Join(", ", columnNames.Select(c => $"@{c}"))})"; using (OleDbCommand insertCommand = new OleDbCommand(insertQuery, connection)) { foreach (CellRange row in worksheet.Rows.Cast().Skip(1)) { for (int i = 0; i < row.Columns.Length; i++) { insertCommand.Parameters.AddWithValue($"@{columnNames[i]}", row.Columns[i].Value); } insertCommand.ExecuteNonQuery(); insertCommand.Parameters.Clear(); } } connection.Close(); workbook.Dispose(); } } }
Результат чтения и вставки:
Получите бесплатную лицензию на API
Spire.XLS for .NET предоставляет бесплатную пробную лицензию, позволяющую разработчикам, предприятиям и отдельным пользователям исследовать мощные возможности обработки файлов Excel без каких-либо ограничений использования или водяных знаков. К получение бесплатной лицензии, пользователи могут максимально использовать потенциал Spire.XLS for .NET, расширить возможности обработки файлов и значительно повысить эффективность обработки файлов Excel.
Заключение
В этой статье мы рассмотрим, как используйте C# для чтения файлов Excel и извлекать данные для различных целей. Используя мощные функции Spire.XLS for .NET, разработчики могут эффективно манипулировать данными Excel, экспортировать их в различные форматы и улучшать приложения, управляемые данными. Это руководство, содержащее пошаговые инструкции, примеры кода и графические представления результатов обработки, помогает оптимизировать эффективность обработки файлов и раскрыть весь потенциал анализа данных в проектах C#.