Jak importować i eksportować DataTable w C#
IronXL konwertuje między skoroszytami Excela a DataSet dzięki prostym wywołaniom metod - użyj LoadWorkSheetsFromDataSet() do importowania DataSet do skoroszytów i ToDataSet() do eksportowania skoroszytów jako DataSet dzięki automatycznemu odwzorowywaniu arkusza na tabelę.
DataSet to reprezentacja danych w pamięci zawierająca wiele powiązanych tabel, relacji i ograniczeń. Do pracy z danymi z baz danych, XML i innych źródeł. Podczas pracy z plikami Excel w C#, DataSet dostarcza znaną strukturę .NET, która integruje się z aplikacjami opartymi na danych.
DataTable reprezentuje pojedynczą tabelę z wierszami i kolumnami w ramach DataSet. IronXL automatycznie odwzorowuje każdy arkusz Excela na odpowiadający mu DataTable, zachowując nagłówki kolumn i typy danych podczas konwersji.
System.Data.DataSet natychmiast
Konwersja skoroszytu do DataSet wymaga jednego wywołania metody. Ten przykład eksportuje cały Twój skoroszyt - każdy arkusz jako DataTable - używając ToDataSet z opcjonalnym rozpoznawaniem nagłówków w pierwszym wierszu.
-
1Install IronXL with NuGet Package Manager
-
2Skopiuj i uruchom ten fragment kodu.
DataSet ds = WorkBook.Create().ToDataSet(useFirstRowAsColumnNames: true);C# -
3Wdrożenie do testowania w środowisku produkcyjnym
Rozpocznij używanie IronXL w swoim projekcie już dziś z darmową wersją próbną
Minimalny proces (5 kroków)
- Pobierz bibliotekę C# do importowania i eksportowania jako DataSet
- Przygotuj
DataSetdo importu do obiektu arkusza kalkulacyjnego - Użyj metody
LoadWorkSheetsFromDataSetaby zaimportowaćDataSetdo skoroszytu - Użyj metody
ToDataSetżeby wyeksportować skoroszyt jakoDataSet - Sprawdź wynik konwersji
Jak załaduję DataSet do skoroszytu?
Użyj metody statycznej LoadWorkSheetsFromDataSet, aby zaimportować DataSet do skoroszytu. Ta metoda wymaga zarówno obiektów DataSet, jak i Workbook. Akceptuje również opcjonalne ustawienia poprzez DataSet. Najpierw utwórz skoroszyt przy użyciu metody Create. Przekaż obiekt DataSet i obiekt workbook do metody.
using IronXL;
using System.Data;
// Create dataset
DataSet dataSet = new DataSet();
// Create workbook
WorkBook workBook = WorkBook.Create();
// Load DataSet to workBook
WorkBook.LoadWorkSheetsFromDataSet(dataSet, workBook);Imports IronXL
Imports System.Data
' Create dataset
Private dataSet As New DataSet()
' Create workbook
Private workBook As WorkBook = WorkBook.Create()
' Load DataSet to workBook
WorkBook.LoadWorkSheetsFromDataSet(dataSet, workBook)Każdy DataTable w DataSet staje się osobnym arkuszem. Nazwa tabeli staje się nazwą arkusza, utrzymując organizację danych. Dla wielu źródeł danych, połącz to z tworzeniem nowych arkuszy kalkulacyjnych lub zarządzaniem istniejącymi arkuszami.
Oto kompleksowy przykład ładowania DataSet z wieloma tabelami:
using IronXL;
using System.Data;
// Create a DataSet with multiple tables
DataSet salesData = new DataSet("CompanySales");
// Create and populate a products table
DataTable productsTable = new DataTable("Products");
productsTable.Columns.Add("ProductID", typeof(int));
productsTable.Columns.Add("ProductName", typeof(string));
productsTable.Columns.Add("Price", typeof(decimal));
// Add sample data
productsTable.Rows.Add(1, "Laptop", 999.99m);
productsTable.Rows.Add(2, "Mouse", 19.99m);
productsTable.Rows.Add(3, "Keyboard", 49.99m);
// Create and populate a sales table
DataTable salesTable = new DataTable("Sales");
salesTable.Columns.Add("SaleID", typeof(int));
salesTable.Columns.Add("ProductID", typeof(int));
salesTable.Columns.Add("Quantity", typeof(int));
salesTable.Columns.Add("Date", typeof(DateTime));
// Add sample sales data
salesTable.Rows.Add(1, 1, 5, DateTime.Now);
salesTable.Rows.Add(2, 2, 25, DateTime.Now.AddDays(-1));
salesTable.Rows.Add(3, 3, 10, DateTime.Now.AddDays(-2));
// Add tables to DataSet
salesData.Tables.Add(productsTable);
salesData.Tables.Add(salesTable);
// Create workbook and load DataSet
WorkBook workBook = WorkBook.Create();
WorkBook.LoadWorkSheetsFromDataSet(salesData, workBook);
// Save the workbook with all imported data
workBook.SaveAs("SalesReport.xlsx");Imports IronXL
Imports System.Data
' Create a DataSet with multiple tables
Dim salesData As New DataSet("CompanySales")
' Create and populate a products table
Dim productsTable As New DataTable("Products")
productsTable.Columns.Add("ProductID", GetType(Integer))
productsTable.Columns.Add("ProductName", GetType(String))
productsTable.Columns.Add("Price", GetType(Decimal))
' Add sample data
productsTable.Rows.Add(1, "Laptop", 999.99D)
productsTable.Rows.Add(2, "Mouse", 19.99D)
productsTable.Rows.Add(3, "Keyboard", 49.99D)
' Create and populate a sales table
Dim salesTable As New DataTable("Sales")
salesTable.Columns.Add("SaleID", GetType(Integer))
salesTable.Columns.Add("ProductID", GetType(Integer))
salesTable.Columns.Add("Quantity", GetType(Integer))
salesTable.Columns.Add("Date", GetType(DateTime))
' Add sample sales data
salesTable.Rows.Add(1, 1, 5, DateTime.Now)
salesTable.Rows.Add(2, 2, 25, DateTime.Now.AddDays(-1))
salesTable.Rows.Add(3, 3, 10, DateTime.Now.AddDays(-2))
' Add tables to DataSet
salesData.Tables.Add(productsTable)
salesData.Tables.Add(salesTable)
' Create workbook and load DataSet
Dim workBook As WorkBook = WorkBook.Create()
WorkBook.LoadWorkSheetsFromDataSet(salesData, workBook)
' Save the workbook with all imported data
workBook.SaveAs("SalesReport.xlsx")To podejście działa dobrze przy eksportowaniu danych z baz danych SQL lub konsolidacji danych z wielu źródeł do formatu Excel.
Odwiedź Jak załadować istniejące arkusze kalkulacyjne, aby dowiedzieć się o importowaniu arkuszy z różnych formatów plików.
Jak eksportować skoroszyt jako DataSet?
Metoda ToDataSet przekształca skoroszyt do System.Data.DataSet, gdzie każdy arkusz staje się System.Data.DataTable. Wywołaj tę metodę na skoroszycie Excela, aby skonwertować go na obiekt DataSet. Parametr useFirstRowAsColumnNames określa, czy używać pierwszego wiersza jako nazw kolumn.
// source file not found: /static-assets/excel-content-code-examples/how-to/export-dataset-datatable-export.cs
IronXL automatycznie obsługuje konwersję typów danych i utrzymuje strukturę arkusza kalkulacyjnego podczas eksportu do DataSet. To pomaga przy integrowaniu danych Excel z bazami danych SQL lub używaniu danych w innych aplikacjach .NET.
Zaawansowany przykład pokazujący eksport skoroszytu i przetwarzanie DataSet:
using IronXL;
using System;
using System.Data;
// Load an existing Excel file
WorkBook workBook = WorkBook.Load("FinancialData.xlsx");
// Export to DataSet with column headers from first row
DataSet financialDataSet = workBook.ToDataSet(useFirstRowAsColumnNames: true);
// Process each DataTable in the DataSet
foreach (DataTable table in financialDataSet.Tables)
{
Console.WriteLine($"Processing table: {table.TableName}");
Console.WriteLine($"Columns: {table.Columns.Count}, Rows: {table.Rows.Count}");
// Iterate through columns
foreach (DataColumn column in table.Columns)
{
Console.WriteLine($" Column: {column.ColumnName} ({column.DataType})");
}
// Process first 5 rows as example
int rowCount = 0;
foreach (DataRow row in table.Rows)
{
if (rowCount++ >= 5) break;
// Access data by column name
foreach (DataColumn col in table.Columns)
{
Console.WriteLine($" {col.ColumnName}: {row[col]}");
}
}
}
// You can also export specific worksheets as DataTables
WorkSheet specificSheet = workBook.GetWorkSheet("Q1Sales");
DataTable q1Data = specificSheet.ToDataTable(useFirstRowAsColumnNames: true);
// Use the DataTable with other .NET components
// For example, bind to a DataGridView or save to database
Eksportowany DataSet zachowuje relacje i ograniczenia zdefiniowane w Excelu, co jest idealne do pracy z złożonymi strukturami danych Excel bez zależności od Interopa Excela.
Dodatkowe funkcje DataSet/DataTable
IronXL oferuje zaawansowane funkcje podczas pracy z DataSet i DataTable:
Obsługa typów danych
IronXL inteligentnie mapuje typy danych podczas konwersji Excel-DataSet. Komórki liczbowe stają się odpowiednimi typami liczbowymi (Int32, Double, Decimal), komórki datowe stają się obiektami DateTime, a komórki tekstowe stają się String. Dostosuj to przez ustawienie formatu danych komórek przed konwersją.
Optymalizacja wydajności
IronXL optymalizuje zużycie pamięci i szybkość przetwarzania dla dużych zbiorów danych. Biblioteka skutecznie przesyła strumieniowo dane zamiast ładować wszystko do pamięci. Odpowiednia dla aplikacji enterprise przetwarzających duże ilości danych.
Integracja z innymi funkcjami
Funkcjonalność DataSet/DataTable integruje się z innymi funkcjami IronXL:
- Zastosuj formuły i obliczenia przed eksportem do
DataSet - Użyj formatowania warunkowego, aby podkreślić dane przed konwersją
- Połącz z tworzeniem wykresów dla wizualnego raportowania
- Obsługa niestandardowej serializacji przy użyciu
int - Uwzględnij zasady walidacji danych za pomocą
decimal - Obsługuj brakujące wartości za pomocą
double - Zarządzaj metadanymi arkusza przez
DateTime - Zachowaj typy formatowania komórek używając
string
Odwiedź Jak zapisać lub eksportować arkusze kalkulacyjne, aby dowiedzieć się o eksportowaniu arkuszy do różnych formatów plików.
Często Zadawane Pytania
Jak przeksztalcic skoroszyt Excel do DataSet w C#?
Z IronXL mozesz przeksztalcic skoroszyt Excel do DataSet z uzyciem metody ToDataSet(). Po prostu wywolaj WorkBook.ToDataSet(useFirstRowAsColumnNames: true), aby wyeksportowac caly skoroszyt, gdzie kazdy arkusz staje sie DataTable w powstajacym DataSet.
Czy moge programistycznie zaimportowac DataSet do skoroszytu Excel?
Tak, IronXL udostepnia metode LoadWorkSheetsFromDataSet(), aby zaimportowac DataSet do skoroszytu. Utworz skoroszyt z uzyciem WorkBook.Create(), a nastepnie przekaż zarówno DataSet, jak i skoroszyt do tej statycznej metody. Kazda DataTable staje sie osobnym arkuszem.
Co dzieje sie z nazwami DataTable przy importowaniu do Excela?
Podczas uzywania metody LoadWorkSheetsFromDataSet() w IronXL, kazda nazwa DataTable automatycznie staje sie nazwa arkusza w Excelu, zachowujac organizacje danych i ułatwiajac identyfikacje roznych zrodel danych.
Czy biblioteka zachowuje naglowki kolumn podczas konwersji DataSet?
Tak, IronXL zachowuje naglowki kolumn i typy danych podczas konwersji miedzy Excel i DataSets. Podczas uzywania ToDataSet() z ustawionym useFirstRowAsColumnNames na true, pierwszy wiersz kazdego arkusza jest rozpoznawany jako naglowki kolumn.
Jak sa obslugiwane wiele tabel podczas konwersji miedzy Excel a DataSets?
IronXL automatycznie mapuje kazdy arkusz Excela do odpowiadajacego mu DataTable podczas konwersji do DataSet i na odwrot. Przy imporcie DataSet z wieloma tabelami, kazda DataTable tworzy osobny arkusz w skoroszycie.
Jaki jest minimalny kod potrzebny do eksportu Excela do DataSet?
Minimalny kod do eksportu skoroszytu Excel do DataSet z uzyciem IronXL to tylko jedna linia: DataSet ds = WorkBook.Create().ToDataSet(useFirstRowAsColumnNames: true); To przeksztalca caly skoroszyt z automatycznym mapowaniem arkusza do tabeli.
What performance optimizations does IronXL include for handling large datasets?
IronXL is optimized for high performance, using efficient streaming techniques to manage memory and speed when working with large data volumes, making it suitable for enterprise-level applications.
How does IronXL maintain data structure when converting a workbook to a DataSet?
IronXL maintains the organizational structure by converting each worksheet to a DataTable. The relationships, constraints, column headers, and data types are preserved during conversion, allowing for complex data interactions.
Can I use IronXL to create visual reports using Excel data?
Yes, IronXL supports creating charts and visual reports by integrating its DataSet/DataTable functionality with its chart creation features, allowing for comprehensive data visualization directly from Excel data.
Does IronXL support the integration of custom serialization in DataSet operations?
IronXL allows for custom serialization, which can enhance DataSet and DataTable manipulation according to specific application requirements, providing greater flexibility in handling serialized data.

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podręczników.