Σε αυτό το σεμινάριο, θα ακολουθήσουμε τα βήματα για να μάθουμε πώς να μετατρέπουμε το Excel σε DataTable σε C#. Είναι πολύ εύχρηστο χαρακτηριστικό που χρησιμοποιεί το C# read αρχείο Excel στο DataTable και στη συνέχεια το χρησιμοποιεί πίσω από κάποιο gridview για εμφάνιση ή το χρησιμοποιεί για την εισαγωγή δεδομένων σε μια βάση δεδομένων. Ακολουθούν τα βήματα για την εισαγωγή του Excel στο DataTable σε C# που τελικά αποθηκεύεται ως XLSX.
Βήματα για τη μετατροπή του Excel σε DataTable σε C#
- Προσθέστε τη βιβλιοθήκη Aspose.Cells for .NET στο έργο χρησιμοποιώντας τη διαχείριση πακέτων NuGet
- Προσθέστε την αναφορά στους χώρους ονομάτων System, System.Data και Aspose.Cells
- Δημιουργήστε ένα κενό αντικείμενο βιβλίου εργασίας
- Συμπληρώστε το πρώτο φύλλο με δείγματα δεδομένων που πρόκειται να εξαχθούν στον πίνακα δεδομένων
- Εξαγάγετε τα περιεχόμενα του συμπληρωμένου φύλλου εργασίας στον πίνακα δεδομένων
- Για επαλήθευση, ανακτήστε δεδομένα στον πίνακα δεδομένων φέρνοντας κάθε σειρά στον πίνακα δεδομένων
- Εμφανίστε όλες τις ανακτημένες σειρές και στήλες στον πίνακα δεδομένων
Σε αυτή τη διαδικασία, αρχικοποιούμε ένα κενό βιβλίο εργασίας και, στη συνέχεια, λαμβάνουμε την αναφορά στο πρώτο φύλλο εργασίας του. Για καλύτερη κατανόηση, τα δείγματα δεδομένων συμπληρώνονται σε αυτό το φύλλο εργασίας που αργότερα μετατρέπεται σε DataTable. Μόλις συμπληρωθούν τα δεδομένα, χρησιμοποιούμε τη συνάρτηση WorkSheet.Cells.ExportDataTable για να δημιουργήσουμε έναν πίνακα δεδομένων. Αυτή η συνάρτηση υποστηρίζει την επιλογή δεδομένων από οποιαδήποτε περιοχή στο φύλλο εργασίας μαζί με την πρόβλεψη εισαγωγής κεφαλίδων στηλών επίσης. Μετά τη δημιουργία αυτού του DataTable, επαληθεύουμε τα περιεχόμενά του εμφανίζοντας όλες τις στήλες σε κάθε γραμμή.
Κώδικας για εισαγωγή Excel σε DataTable σε C#
using System; | |
using System.Data; | |
using Aspose.Cells; | |
namespace ConvertExcelToDataTableInCSharp | |
{ | |
class Program | |
{ | |
static void Main(string[] args) | |
{ | |
// Initialize the license to generate output file without the trial version watermark | |
License license = new License(); | |
license.SetLicense("Aspose.Cells.lic"); | |
// Instantiate the new Excel file for importing to DataTable | |
Workbook ExcelToDataTable = new Workbook(); | |
// Access first worksheet | |
Worksheet worksheetToDataTable = ExcelToDataTable.Worksheets[0]; | |
// Insert sample data to be exported to DataTable in the first sheet | |
worksheetToDataTable.Cells["A1"].Value = "Roll No"; | |
worksheetToDataTable.Cells["B1"].Value = "Name"; | |
worksheetToDataTable.Cells["C1"].Value = "Age"; | |
worksheetToDataTable.Cells["A2"].Value = 1; | |
worksheetToDataTable.Cells["B2"].Value = "Bob"; | |
worksheetToDataTable.Cells["C2"].Value = 21.5; | |
worksheetToDataTable.Cells["A3"].Value = 2; | |
worksheetToDataTable.Cells["B3"].Value = "Neil"; | |
worksheetToDataTable.Cells["C3"].Value = 23; | |
worksheetToDataTable.Cells["A4"].Value = 3; | |
worksheetToDataTable.Cells["B4"].Value = "John"; | |
worksheetToDataTable.Cells["C4"].Value = 25; | |
// Exporting the contents of 4 rows and 3 columns starting from 1st cell to DataTable | |
DataTable dataTable = worksheetToDataTable.Cells.ExportDataTable(0, 0, 4, 3, true); | |
// Verify data in the DataTable by displaying all the columns in each row | |
for (int iDataTableRow = 0; iDataTableRow < dataTable.Rows.Count; iDataTableRow++) | |
{ | |
// Fetch individual column data | |
Int32 RollNo = Convert.ToInt32(dataTable.Rows[iDataTableRow]["Roll No"]); | |
String Name = Convert.ToString(dataTable.Rows[iDataTableRow]["Name"]); | |
Double Age = Convert.ToDouble(dataTable.Rows[iDataTableRow]["Age"]); | |
// Display data in the row | |
System.Console.WriteLine($"Roll No:{RollNo}, Name : {Name}, Age : {Age} Years"); | |
} | |
// Save the Excel file that is Imported to DataTable | |
ExcelToDataTable.Save("ExcelToDataTable.xlsx"); | |
} | |
} | |
} |
Σε αυτή τη διαδικασία, δεν χρησιμοποιείται ούτε το interop ούτε το MS Excel. Μπορείτε επίσης να μετατρέψετε το Excel σε άλλες μορφές όπως περιγράφεται στο πώς να εξαγάγετε μεγάλο αρχείο Excel σε CSV σε C#.