Προγραμματισμός

Τρόπος εξαγωγής δεδομένων στο Excel στο ASP.NET Core 3.0

Κατά τη δημιουργία εφαρμογών ιστού, συχνά θα πρέπει να εισάγετε ή να εξάγετε δεδομένα από ή σε έγγραφα Word ή Excel. Υπάρχουν διάφοροι τρόποι για να επιτευχθεί αυτό, και πολλά πακέτα NuGet για εργασία με το Word ή το Excel. Αυτό το άρθρο περιγράφει πώς μπορούμε να εργαστούμε με το ClosedXML στο ASP.NET Core για εξαγωγή δεδομένων στο Excel.

Για να εργαστείτε με τα παραδείγματα κώδικα που παρέχονται σε αυτό το άρθρο, θα πρέπει να έχετε εγκαταστήσει το Visual Studio 2019 στο σύστημά σας. Εάν δεν έχετε ήδη αντίγραφο, μπορείτε να κατεβάσετε το Visual Studio 2019 εδώ.

Δημιουργήστε ένα έργο ASP.NET Core MVC στο Visual Studio

Αρχικά, ας δημιουργήσουμε ένα έργο ASP.NET Core στο Visual Studio 2019. Ας υποθέσουμε ότι το Visual Studio 2019 είναι εγκατεστημένο στο σύστημά σας, ακολουθήστε τα βήματα που περιγράφονται παρακάτω για να δημιουργήσετε ένα νέο έργο ASP.NET Core στο Visual Studio.

  1. Εκκινήστε το Visual Studio IDE.
  2. Κάντε κλικ στο "Δημιουργία νέου έργου".
  3. Στο παράθυρο "Δημιουργία νέου έργου", επιλέξτε "ASP.NET Core Web Application" από τη λίστα των προτύπων που εμφανίζονται.
  4. Κάντε κλικ στο Επόμενο.
  5. Στο παράθυρο "Διαμόρφωση του νέου έργου", καθορίστε το όνομα και την τοποθεσία για το νέο έργο.
  6. Προαιρετικά, επιλέξτε το πλαίσιο ελέγχου "Τοποθετήστε λύση και έργο στον ίδιο κατάλογο".
  7. Κάντε κλικ στο Δημιουργία.
  8. Στο παράθυρο "Δημιουργία νέας εφαρμογής ASP.NET Core Web" που εμφανίζεται στη συνέχεια, επιλέξτε .NET Core ως χρόνο εκτέλεσης και ASP.NET Core 2.2 (ή μεταγενέστερη έκδοση) από την αναπτυσσόμενη λίστα στην κορυφή. Θα χρησιμοποιώ το ASP.NET Core 3.0.
  9. Επιλέξτε "Web Application (Model-View-Controller)" ως πρότυπο έργου για να δημιουργήσετε μια νέα εφαρμογή ASP.NET Core MVC.
  10. Βεβαιωθείτε ότι τα πλαίσια ελέγχου "Ενεργοποίηση υποστήριξης Docker" και "Διαμόρφωση για HTTPS" δεν είναι επιλεγμένα, καθώς δεν θα χρησιμοποιούμε αυτές τις δυνατότητες εδώ.
  11. Βεβαιωθείτε ότι ο Έλεγχος ταυτότητας έχει οριστεί σε "Χωρίς έλεγχο ταυτότητας", καθώς ούτε θα χρησιμοποιούμε έλεγχο ταυτότητας.
  12. Κάντε κλικ στο Δημιουργία.

Ακολουθώντας αυτά τα βήματα θα πρέπει να δημιουργήσετε ένα νέο έργο ASP.NET Core MVC στο Visual Studio. Θα χρησιμοποιήσουμε αυτό το έργο για να δείξουμε την εξαγωγή δεδομένων για το Excel στις παρακάτω ενότητες.

Εγκαταστήστε το πακέτο ClosedXML NuGet

Υπάρχουν πολλές βιβλιοθήκες για να διαλέξετε εάν θέλετε να εξαγάγετε δεδομένα στο Excel. Ένα από αυτά ονομάζεται ClosedXML. Μπορείτε να εγκαταστήσετε αυτό το πακέτο είτε μέσω του διαχειριστή πακέτων NuGet στο Visual Studio 2019 IDE είτε εκτελώντας την ακόλουθη εντολή στην κονσόλα διαχειριστή πακέτων NuGet:

Εγκατάσταση-πακέτο ClosedXML

Εξαγωγή δεδομένων ως αρχείο CSV από το ASP.NET Core 3.0

Η εξαγωγή δεδομένων ως αρχείο διαχωρισμένου με κόμμα (CSV) είναι απλή. Θα μπορούσατε να επωφεληθείτε από ένα πακέτο NuGet όπως το CsvExport ή το AWright 18. SimpleCSVExporter για να το επιτύχετε αυτό, ή μπορείτε να το κάνετε χειροκίνητα. Για λόγους απλότητας, θα δημιουργήσουμε ένα αρχείο CSV με μη αυτόματο τρόπο. Εξετάστε την ακόλουθη τάξη με το όνομα Συγγραφέας.

δημόσια τάξη Συγγραφέας

{

δημόσιο int Id {get; σειρά; }

δημόσια συμβολοσειρά FirstName {get; σειρά; }

δημόσια συμβολοσειρά LastName {get; σειρά; }

}

Στη συνέχεια, μπορείτε να συμπληρώσετε δεδομένα σε μια λίστα συγγραφέων όπως φαίνεται στο απόσπασμα κώδικα που δίνεται παρακάτω.

Λίστα συγγραφέων = νέα λίστα

{

νέος συντάκτης {Id = 1, FirstName = "Joydip", LastName = "Kanjilal"},

νέος συντάκτης {Id = 2, FirstName = "Steve", LastName = "Smith"},

νέος συντάκτης {Id = 3, FirstName = "Anand", LastName = "Narayaswamy"}

};

Το παρακάτω απόσπασμα κώδικα δείχνει πώς μπορείτε να δημιουργήσετε ένα αρχείο CSV σε μια μέθοδο δράσης του ελεγκτή σας.

δημόσια IActionResult ΛήψηCommaSeperatedFile ()

{

δοκιμάστε

    {

StringBuilder stringBuilder = νέο StringBuilder ();

stringBuilder.AppendLine ("Αναγνωριστικό, Όνομα, Επώνυμο");

foreach (var συγγραφέας σε συγγραφείς)

       {

stringBuilder.AppendLine ($ "{author.Id},

{author.FirstName}, {author.LastName} ");

       }

επιστροφή αρχείου (Encoding.UTF8.GetBytes

(stringBuilder.ToString ()), "text / csv", "author.csv");

    }

σύλληψη

    {

Σφάλμα επιστροφής ();

    }

}

Εξαγωγή δεδομένων ως αρχείο XLSX στο ASP.NET Core 3.0

Ένα βιβλίο εργασίας στο Excel αποτελείται από πολλά φύλλα εργασίας. Μπορείτε να δημιουργήσετε ένα βιβλίο εργασίας του Excel χρησιμοποιώντας τον ακόλουθο κώδικα.

βιβλίο εργασίας var = νέο βιβλίο XLWork ();

Στη συνέχεια, μπορείτε να επωφεληθείτε από τη διεπαφή IXLWorkSheet για να δημιουργήσετε και να προσθέσετε φύλλα εργασίας στο βιβλίο εργασίας όπως φαίνεται παρακάτω.

Φύλλο εργασίας IXLWorksheet = workbook.Worksheets.Add ("Authors");

φύλλο εργασίας.Cell (1, 1). Value = "Id";

φύλλο εργασίας.Cell (1, 2). Value = "FirstName";

φύλλο εργασίας.Cell (1, 3). Value = "LastName";

για (int index = 1; index <= author.Count; index ++)

{

φύλλο εργασίας.Cell (index + 1, 1). Value = author [index - 1] .Id;

φύλλο εργασίας.Cell (ευρετήριο + 1, 2). Αξία = συγγραφείς [ευρετήριο - 1]. FirstName;

φύλλο εργασίας.Cell (index + 1, 3). Value = author [index - 1]. LastName;

}

Τέλος, μπορείτε να αποθηκεύσετε το βιβλίο εργασίας ως ροή μνήμης και, στη συνέχεια, να δημιουργήσετε μια παρουσία FileContentResult όπως φαίνεται παρακάτω.

χρησιμοποιώντας (var stream = new MemoryStream ())

{

βιβλίο εργασίας.SaveAs (stream);

var content = stream.ToArray ();

επιστροφή αρχείου (περιεχόμενο, τύπος περιεχομένου, όνομα αρχείου);

}

Κατεβάστε ένα έγγραφο Excel στο ASP.NET Core 3.0

Εδώ είναι ο πλήρης πηγαίος κώδικας της μεθόδου δράσης που μπορεί να χρησιμοποιηθεί για τη λήψη ενός εγγράφου Excel.

δημόσια IActionResult ΛήψηExcelDocument ()

        {

string contentType = "application / vnd.openxml μορφές-

officedocument.spreadsheetml.sheet ";

string fileName = "author.xlsx";

δοκιμάστε

            {

χρησιμοποιώντας (βιβλίο εργασίας var = νέο XLWorkbook ())

                {

Φύλλο εργασίας IXLWorksheet =

βιβλίο εργασίας.Worksheets.Add ("Συγγραφείς");

φύλλο εργασίας.Cell (1, 1). Value = "Id";

φύλλο εργασίας.Cell (1, 2). Value = "FirstName";

φύλλο εργασίας.Cell (1, 3). Value = "LastName";

για (int index = 1; index <= author.Count; index ++)

                    {

φύλλο εργασίας.Cell (ευρετήριο + 1, 1). Τιμή =

συγγραφείς [ευρετήριο - 1]. Id;

φύλλο εργασίας.Cell (ευρετήριο + 1, 2). Τιμή =

συγγραφείς [ευρετήριο - 1]. FirstName;

φύλλο εργασίας.Cell (ευρετήριο + 1, 3). Τιμή =

συγγραφείς [ευρετήριο - 1]. Τελευταίο όνομα;

                    }

χρησιμοποιώντας (var stream = new MemoryStream ())

                    {

βιβλίο εργασίας.SaveAs (stream);

var content = stream.ToArray ();

επιστροφή αρχείου (περιεχόμενο, τύπος περιεχομένου, όνομα αρχείου);

                    }

                }

            }

αλίευση (πρώην εξαίρεση)

            {

Σφάλμα επιστροφής ();

            }

        }

Ενώ έχουμε χρησιμοποιήσει το ClosedXML σε αυτό το άρθρο, υπάρχουν πολλά άλλα πακέτα για ανάγνωση, συγγραφή και χειρισμό δεδομένων Excel στο ASP.NET Core συμπεριλαμβανομένων των EPPlus και NPOI. Μπορείτε να μάθετε περισσότερα για το ClosedXML στο GitHub στη διεύθυνση //github.com/ClosedXML/ClosedXML. Θα συζητήσω την εισαγωγή δεδομένων Excel σε μια εφαρμογή ASP.NET Core σε μια μελλοντική ανάρτηση εδώ.

Πώς να κάνετε περισσότερα στα ASP.NET και ASP.NET Core:

  • Τρόπος χρήσης της προσωρινής αποθήκευσης στη μνήμη στο ASP.NET Core
  • Πώς να χειριστείτε σφάλματα στο ASP.NET Web API
  • Τρόπος μετάδοσης πολλαπλών παραμέτρων σε μεθόδους ελεγκτή API Ιστού
  • Τρόπος καταγραφής των μεταδεδομένων αιτήματος και απόκρισης στο ASP.NET Web API
  • Πώς να εργαστείτε με HttpModules στο ASP.NET
  • Προηγμένη έκδοση στο ASP.NET Core Web API
  • Πώς να χρησιμοποιήσετε την ένεση εξάρτησης στο ASP.NET Core
  • Πώς να εργαστείτε με συνεδρίες στο ASP.NET
  • Πώς να εργαστείτε με HTTPHandlers στο ASP.NET
  • Πώς να χρησιμοποιήσετε το IHostedService στο ASP.NET Core
  • Πώς να καταναλώσετε μια υπηρεσία WCF SOAP στο ASP.NET Core
  • Πώς να βελτιώσετε την απόδοση των εφαρμογών ASP.NET Core
  • Πώς να καταναλώσετε ένα ASP.NET Core Web API χρησιμοποιώντας το RestSharp
  • Πώς να εργαστείτε με τη σύνδεση στο ASP.NET Core
  • Πώς να χρησιμοποιήσετε το MediatR στο ASP.NET Core
  • Τρόπος εργασίας με την κατάσταση συνεδρίας στον ASP.NET Core
  • Πώς να χρησιμοποιήσετε το Nancy στο ASP.NET Core
  • Κατανοήστε τη δέσμευση παραμέτρων στο ASP.NET Web API
  • Πώς να ανεβάσετε αρχεία στο ASP.NET Core MVC
  • Τρόπος εφαρμογής του παγκόσμιου χειρισμού εξαιρέσεων στο ASP.NET Core Web API
  • Πώς να εφαρμόσετε ελέγχους υγείας στο ASP.NET Core
  • Βέλτιστες πρακτικές στην προσωρινή αποθήκευση στο ASP.NET
  • Πώς να χρησιμοποιήσετε τα μηνύματα Apache Kafka στο .NET
  • Πώς να ενεργοποιήσετε το CORS στο Web API σας
  • Πότε να χρησιμοποιήσετε το WebClient εναντίον HttpClient εναντίον HttpWebRequest
  • Πώς να εργαστείτε με το Redis Cache στο .NET
  • Πότε να χρησιμοποιήσετε το Task.WaitAll εναντίον Task.WhenAll στο .NET
$config[zx-auto] not found$config[zx-overlay] not found