Электронные таблицы MS Excel широко используются для хранения данных малого, среднего или большого размера. В различных случаях электронные таблицы действуют как база данных для хранения данных приложения. В таких ситуациях вам может потребоваться прочитать данные, хранящиеся в файлах Excel, из ваших веб-приложений или настольных приложений. В таких случаях в этой статье рассказывается, как преобразовать данные Excel в таблицы данных на C#.
- C# API для экспорта данных Excel в DataTable
- Excel в DataTable на С#
- Преобразование строго типизированных данных Excel в DataTable
- Преобразование данных Excel без строгой типизации в DataTable
- Получить бесплатную лицензию
C# API преобразования Excel в DataTable
Aspose.Cells for .NET — это библиотека классов, позволяющая реализовать функции автоматизации Excel в приложениях .NET. Кроме того, API позволяет экспортировать данные из листов Excel в ADO.NET DataTable за несколько шагов. Вы можете либо скачать API, либо установить его через NuGet.
PM> Install-Package Aspose.Cells
Преобразование Excel в DataTable в C#
При экспорте данных из листов Excel в DataTables может быть два возможных сценария: данные могут быть строго типизированы или не строго типизированы. В обоих случаях вы можете выполнить преобразование Excel в DataTable соответствующим образом. Давайте посмотрим, как справиться с любым из вышеупомянутых сценариев.
Преобразование строго типизированных данных Excel в DataTable на C#
Строго типизированные данные означают, что значения в одном столбце принадлежат к определенному типу данных. В таких случаях вы можете экспортировать данные Excel в DataTable на C#, выполнив следующие действия.
- Используйте класс Workbook для загрузки файла Excel.
- Получите рабочий лист, который вы хотите экспортировать, в объект Worksheet.
- Используйте метод Worksheet.Cells.ExportDataTable(int, int, int, int, bool) для экспорта данных в объект DataTable.
- Используйте DataTable в качестве источника данных.
В следующем примере кода показано, как экспортировать Excel в DataTable.
// Создайте файловый поток, содержащий файл Excel, который нужно открыть.
FileStream fstream = new FileStream("Excel.xlsx", FileMode.Open);
// Создать экземпляр объекта Workbook
//Открытие файла Excel через файловый поток
Workbook workbook = new Workbook(fstream);
// Доступ к первому рабочему листу в файле Excel
Worksheet worksheet = workbook.Worksheets[0];
// Экспортировать содержимое 2 строк и 2 столбцов, начиная с 1-й ячейки, в DataTable
DataTable dataTable = worksheet.Cells.ExportDataTable(0, 0,2, 2, true);
// Связать DataTable с DataGrid
dataGridView1.DataSource = dataTable;
// Закройте файловый поток, чтобы освободить все ресурсы
fstream.Close();
Преобразование данных Excel без строгой типизации в DataTable на C#
Теперь давайте рассмотрим другой случай, когда значения на листе не являются строго типизированными. Это означает, что они не принадлежат к определенному типу данных. Ниже приведены шаги для экспорта данных Excel в DataTable в этом случае.
- Используйте класс Workbook для загрузки файла Excel.
- Выберите рабочий лист, который вы хотите экспортировать, в объекте Worksheet.
- Используйте метод Worksheet.Cells.ExportDataTableAsString(int, int, int, int, bool) для экспорта данных в объект DataTable.
- Используйте DataTable в качестве источника данных.
В следующем примере кода показано, как экспортировать не строго типизированные данные из Excel в DataTable на C#.
// Создайте файловый поток, содержащий файл Excel, который нужно открыть.
FileStream fstream = new FileStream("Excel.xlsx", FileMode.Open);
// Создать экземпляр объекта Workbook
//Открытие файла Excel через файловый поток
Workbook workbook = new Workbook(fstream);
// Доступ к первому рабочему листу в файле Excel
Worksheet worksheet = workbook.Worksheets[0];
// Экспортировать содержимое 2 строк и 2 столбцов, начиная с 1-й ячейки, в DataTable
DataTable dataTable = worksheet.Cells.ExportDataTableAsString(0, 0, 2, 2, true);
// Связать DataTable с DataGrid
dataGridView1.DataSource = dataTable;
// Закройте файловый поток, чтобы освободить все ресурсы
fstream.Close();
Получить бесплатную лицензию
Вы можете получить бесплатную временную лицензию, чтобы попробовать API без ограничений на пробную версию.
Вывод
В этой статье вы узнали, как экспортировать или преобразовывать данные Excel в таблицы данных ADO.NET с помощью C#. В пошаговом руководстве и примерах кода показано, как работать со строго типизированными и нестрого типизированными данными на листах. Вы можете узнать больше об C# Excel API, используя документацию.