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# API do eksportowania danych programu Excel do DataTable
- Excel do DataTable w C#
- Konwertuj silnie wpisane dane Excela na DataTable
- Konwertuj dane programu Excel o niezbyt silnym typie na DataTable
- Uzyskaj bezpłatną licencję
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.
- Użyj klasy Workbook, aby załadować plik Excel.
- Pobierz arkusz, który chcesz wyeksportować, w obiekcie Worksheet.
- Użyj metody Worksheet.Cells.ExportDataTable(int, int, int, int, bool), aby wyeksportować dane do obiektu DataTable.
- Użyj DataTable jako źródła danych.
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.
- Użyj klasy Workbook, aby załadować plik Excel.
- Wybierz arkusz, który chcesz wyeksportować w obiekcie Worksheet.
- Użyj metody Worksheet.Cells.ExportDataTableAsString(int, int, int, int, bool), aby wyeksportować dane do obiektu DataTable.
- Użyj DataTable jako źródła danych.
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.