Arkusze kalkulacyjne MS Excel są szeroko stosowane do przechowywania małych, średnich lub dużych danych. W różnych przypadkach arkusze kalkulacyjne działają jak baza danych do przechowywania danych aplikacji. W takich sytuacjach może być konieczne odczytanie danych przechowywanych w plikach programu Excel z poziomu aplikacji internetowych lub stacjonarnych. W takich przypadkach w tym artykule omówiono sposób konwertowania danych programu Excel na DataTables w języku C#.

C# Excel do interfejsu API konwersji DataTable

Aspose.Cells for .NET to biblioteka klas, która umożliwia implementację funkcji automatyzacji programu Excel w aplikacjach .NET. Ponadto API umożliwia eksport danych z arkuszy Excel do ADO.NET DataTable w kilku krokach. Możesz pobrać interfejs API lub zainstalować go za pomocą NuGet.

PM> Install-Package Aspose.Cells

Konwertuj Excel na DataTable w C#

Istnieją dwa możliwe scenariusze podczas eksportowania danych z arkuszy programu Excel do DataTables: dane mogą być silnie wpisane lub nie wpisane silnie. W obu przypadkach możesz odpowiednio przeprowadzić konwersję Excela na DataTable. Przyjrzyjmy się, jak poradzić sobie z jednym z wyżej wymienionych scenariuszy.

Konwertuj silnie wpisane dane Excela na DataTable w C#

Silnie wpisane dane oznaczają, że wartości w jednej kolumnie należą do określonego typu danych. W takich przypadkach można wyeksportować dane programu Excel do DataTable w języku C#, wykonując następujące czynności.

Poniższy przykładowy kod pokazuje, jak wyeksportować program Excel do DataTable.

// Utwórz strumień plików zawierający plik Excel do otwarcia
FileStream fstream = new FileStream("Excel.xlsx", FileMode.Open);

// Utwórz instancję obiektu skoroszytu
//Otwieranie pliku programu Excel za pomocą strumienia plików
Workbook workbook = new Workbook(fstream);

// Uzyskaj dostęp do pierwszego arkusza w pliku Excel
Worksheet worksheet = workbook.Worksheets[0];

// Eksportuj zawartość 2 wierszy i 2 kolumn, zaczynając od pierwszej komórki, do DataTable
DataTable dataTable = worksheet.Cells.ExportDataTable(0, 0,2, 2, true);

// Powiąż DataTable z DataGrid
dataGridView1.DataSource = dataTable;

// Zamknij strumień plików, aby zwolnić wszystkie zasoby
fstream.Close();

Konwertuj dane Excela o niezbyt silnym typie na DataTable w C#

Przyjrzyjmy się teraz drugiemu przypadkowi, w którym wartości w arkuszu nie są mocno wpisane. Oznacza to, że nie należą do określonego typu danych. Poniżej przedstawiono kroki, aby wyeksportować dane programu Excel do DataTable w tym przypadku.

Poniższy przykładowy kod pokazuje, jak wyeksportować dane o słabym typie z programu Excel do DataTable w języku C#.

// Utwórz strumień plików zawierający plik Excel do otwarcia
FileStream fstream = new FileStream("Excel.xlsx", FileMode.Open);

// Utwórz instancję obiektu skoroszytu
//Otwieranie pliku programu Excel za pomocą strumienia plików
Workbook workbook = new Workbook(fstream);

// Uzyskaj dostęp do pierwszego arkusza w pliku Excel
Worksheet worksheet = workbook.Worksheets[0];

// Eksportuj zawartość 2 wierszy i 2 kolumn, zaczynając od pierwszej komórki, do DataTable
DataTable dataTable = worksheet.Cells.ExportDataTableAsString(0, 0, 2, 2, true);

// Powiąż DataTable z DataGrid
dataGridView1.DataSource = dataTable;

// Zamknij strumień plików, aby zwolnić wszystkie zasoby
fstream.Close();

Uzyskaj bezpłatną licencję

Możesz uzyskać bezpłatną tymczasową licencję, aby wypróbować interfejs API bez ograniczeń ewaluacyjnych.

Wniosek

W tym artykule nauczyłeś się eksportować lub konwertować dane programu Excel do ADO.NET DataTables przy użyciu języka C#. Samouczek krok po kroku i przykłady kodu pokazały, jak radzić sobie z silnie i słabo wpisanymi danymi w arkuszach. Możesz dowiedzieć się więcej o interfejsie API programu C# Excel, korzystając z dokumentacji.

Zobacz też