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

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 в этом случае.

В следующем примере кода показано, как экспортировать не строго типизированные данные из 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, используя документацию.

Смотрите также