Programiranje

Kako izvoziti podatke v Excel v ASP.NET Core 3.0

Pri izdelavi spletnih aplikacij boste pogosto morali uvoziti ali izvoziti podatke iz dokumentov Word ali Excel ali v njih. To lahko dosežete na več načinov in veliko paketov NuGet za delo z Wordom ali Excelom. Ta članek razpravlja o tem, kako lahko v programu ASP.NET Core sodelujemo z ClosedXML za izvoz podatkov v Excel.

Če želite delati s primeri kod v tem članku, morate imeti v sistemu nameščen Visual Studio 2019. Če kopije še nimate, lahko Visual Studio 2019 prenesete tukaj.

Ustvarite projekt ASP.NET Core MVC v Visual Studio

Najprej ustvarimo projekt ASP.NET Core v Visual Studio 2019. Če predpostavimo, da je Visual Studio 2019 nameščen v vašem sistemu, sledite spodnjim korakom, da ustvarite nov projekt ASP.NET Core v Visual Studio.

  1. Zaženite Visual Studio IDE.
  2. Kliknite »Ustvari nov projekt«.
  3. V oknu »Ustvari nov projekt« na prikazanih seznamih predlog izberite »Spletna aplikacija ASP.NET Core«.
  4. Kliknite Naprej.
  5. V oknu »Konfiguriranje novega projekta« določite ime in mesto novega projekta.
  6. Po želji izberite potrditveno polje »Rešitev in projekt postavite v isti imenik«.
  7. Kliknite Ustvari.
  8. V naslednjem oknu »Ustvari novo spletno aplikacijo ASP.NET Core« izberite .NET Core kot izvajalno okolje in ASP.NET Core 2.2 (ali novejšo) s spustnega seznama na vrhu. Uporabljal bom ASP.NET Core 3.0.
  9. Kot predlogo projekta izberite »Spletna aplikacija (Model-View-Controller)«, da ustvarite novo aplikacijo ASP.NET Core MVC.
  10. Prepričajte se, da sta potrditveni polji »Omogoči podporo za Docker« in »Konfiguriranje za HTTPS« odstranjeni, saj tukaj ne bomo uporabljali teh funkcij.
  11. Prepričajte se, da je preverjanje pristnosti nastavljeno na »Brez preverjanja pristnosti«, saj tudi preverjanja pristnosti ne bomo uporabljali.
  12. Kliknite Ustvari.

Po teh korakih bi morali v Visual Studio ustvariti nov projekt ASP.NET Core MVC. Ta projekt bomo uporabili za ponazoritev izvoza podatkov za Excel v spodnjih oddelkih.

Namestite paket ClosedXML NuGet

Izbirate lahko med več knjižnicami, če želite podatke izvoziti v Excel. Eden izmed njih se imenuje ClosedXML. Ta paket lahko namestite prek upravitelja paketov NuGet znotraj IDE Visual Studio 2019 ali pa tako, da v konzoli upravitelja paketov NuGet izvedete naslednji ukaz:

Namestitveni paket ClosedXML

Iz ASP.NET Core 3.0 izvozite podatke v obliki datoteke CSV

Izvoz podatkov kot datoteke, ločene z vejicami (CSV), je preprost. Za to lahko izkoristite paket NuGet, kot je CsvExport ali AWright18.SimpleCSVExporter, ali pa ročno. Zaradi poenostavitve bomo datoteko CSV ustvarili ročno. Razmislite o naslednjem razredu z imenom Avtor.

javni razred Avtor

{

public int Id {get; set; }

javni niz FirstName {get; set; }

javni niz LastName {get; set; }

}

Nato lahko podatke vstavite v seznam avtorjev, kot je prikazano v spodnjem delčku kode.

Avtorji seznama = nov seznam

{

nov avtor {Id = 1, FirstName = "Joydip", LastName = "Kanjilal"},

novi avtor {Id = 2, FirstName = "Steve", LastName = "Smith"},

nov avtor {Id = 3, FirstName = "Anand", LastName = "Narayaswamy"}

};

Naslednji delček kode prikazuje, kako lahko v akcijski metodi krmilnika ustvarite datoteko CSV.

public IActionResult DownloadCommaSeperatedFile ()

{

poskusite

    {

StringBuilder stringBuilder = nov StringBuilder ();

stringBuilder.AppendLine ("Id, Ime, Priimek");

foreach (var avtor v avtorjih)

       {

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

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

       }

vrni datoteko (Encoding.UTF8.GetBytes

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

    }

ulov

    {

return Error ();

    }

}

Izvozite podatke kot datoteko XLSX v ASP.NET Core 3.0

Delovni zvezek v Excelu je sestavljen iz več delovnih listov. Excelov delovni zvezek lahko ustvarite s pomočjo naslednje kode.

var delovni zvezek = nov XLWorkbook ();

Nato lahko izkoristite vmesnik IXLWorkSheet za ustvarjanje in dodajanje delovnih listov v delovni zvezek, kot je prikazano spodaj.

IXLWorksheet worksheet = workbook.Worksheets.Add ("Avtorji");

worksheet.Cell (1, 1) .Value = "Id";

delovni list.Cell (1, 2) .Value = "FirstName";

worksheet.Cell (1, 3) .Value = "Priimek";

za (int indeks = 1; indeks <= avtorji.število; indeks ++)

{

delovni list.Cell (indeks + 1, 1) .Vrednost = avtorji [indeks - 1] .Id;

delovni list.Cell (indeks + 1, 2) .Vrednost = avtorji [indeks - 1] .Primerime;

delovni list.Cell (indeks + 1, 3) .Vrednost = avtorji [indeks - 1] .LastName;

}

Na koncu lahko delovni zvezek shranite kot pomnilniški tok in nato ustvarite primerek FileContentResult, kot je prikazano spodaj.

z uporabo (var stream = new MemoryStream ())

{

delovni zvezek.SaveAs (tok);

var content = stream.ToArray ();

vrni datoteko (content, contentType, fileName);

}

Prenesite Excel dokument v ASP.NET Core 3.0

Tu je celotna izvorna koda akcijske metode, s katero lahko prenesete Excelov dokument.

javni IActionResult DownloadExcelDocument ()

        {

string contentType = "application / vnd.openxmlformats-

officedocument.spreadsheetml.sheet ";

string fileName = "avtorji.xlsx";

poskusite

            {

z uporabo (var delovni zvezek = nov XLWorkbook ())

                {

IXLWorksheet delovni list =

workbook.Worksheets.Add ("Avtorji");

worksheet.Cell (1, 1) .Value = "Id";

delovni list.Cell (1, 2) .Value = "FirstName";

worksheet.Cell (1, 3) .Value = "Priimek";

za (int indeks = 1; indeks <= avtorji.število; indeks ++)

                    {

delovni list.Cell (indeks + 1, 1) .Vrednost =

avtorji [kazalo - 1] .Id;

delovni list.Cell (indeks + 1, 2) .Vrednost =

avtorji [kazalo - 1] .Ime;

delovni list.Cell (indeks + 1, 3) .Vrednost =

avtorji [kazalo - 1] .LastName;

                    }

z uporabo (var stream = new MemoryStream ())

                    {

delovni zvezek.SaveAs (tok);

var content = stream.ToArray ();

vrni datoteko (content, contentType, fileName);

                    }

                }

            }

ulov (izjema ex)

            {

return Error ();

            }

        }

Čeprav smo v tem članku uporabili ClosedXML, obstaja več drugih paketov za branje, pisanje in obdelavo podatkov Excel v ASP.NET Core, vključno z EPPlus in NPOI. Več o ClosedXML lahko izveste v GitHub na //github.com/ClosedXML/ClosedXML. Uvoz podatkov Excel v aplikaciji ASP.NET Core bom obravnaval v prihodnji objavi tukaj.

Kako narediti več v ASP.NET in ASP.NET Core:

  • Kako uporabljati predpomnjenje v pomnilniku v ASP.NET Core
  • Kako ravnati z napakami v spletnem API-ju ASP.NET
  • Kako prenesti več parametrov v metode krmilnika spletnega API-ja
  • Kako zapisati metapodatke zahtev in odzivov v spletni API ASP.NET
  • Kako delati s HttpModules v ASP.NET
  • Napredno spreminjanje različic v ASP.NET Core Web API
  • Kako uporabiti vbrizgavanje odvisnosti v ASP.NET Core
  • Kako delati s sejami v ASP.NET
  • Kako delati z HTTPHandlers v ASP.NET
  • Kako uporabljati IHostedService v ASP.NET Core
  • Kako porabiti storitev WCF SOAP v ASP.NET Core
  • Kako izboljšati delovanje aplikacij ASP.NET Core
  • Kako porabiti spletni API ASP.NET Core s pomočjo RestSharp
  • Kako delati s prijavo v ASP.NET Core
  • Kako uporabljati MediatR v ASP.NET Core
  • Kako delati s stanjem seje v ASP.NET Core
  • Kako uporabljati Nancy v ASP.NET Core
  • Razumevanje vezave parametrov v spletnem API-ju ASP.NET
  • Kako naložiti datoteke v ASP.NET Core MVC
  • Kako implementirati globalno obravnavo izjem v ASP.NET Core Web API
  • Kako izvajati zdravstvene preglede v ASP.NET Core
  • Najboljše prakse predpomnjenja v ASP.NET
  • Kako uporabljati sporočila Apache Kafka v .NET
  • Kako omogočiti CORS v spletnem API-ju
  • Kdaj uporabiti WebClient v primerjavi s HttpClient v primerjavi s HttpWebRequest
  • Kako delati s predpomnilnikom Redis v .NET
  • Kdaj uporabiti Task.WaitAll v primerjavi z Task.WhenAll v .NET
$config[zx-auto] not found$config[zx-overlay] not found