Електронні таблиці MS Excel широко використовуються для зберігання даних малого, середнього або великого розміру. У різних випадках електронні таблиці діють як база даних для зберігання даних програми. У таких ситуаціях вам може знадобитися прочитати дані, що зберігаються у файлах Excel, із веб-програм або програм для настільних ПК. Для таких випадків у цій статті описано, як перетворити дані Excel на DataTables у C#.

C# Excel для перетворення DataTable API

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#, виконавши такі дії.

У наведеному нижче прикладі коду показано, як експортувати 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 DataTables за допомогою C#. Покроковий підручник і зразки коду показали, як працювати зі строго типізованими та нестрого типізованими даними на робочих аркушах. Ви можете дізнатися більше про C# Excel API за допомогою документації.

Дивись також