Ohjelmointi

Tietojen vieminen Exceliin ASP.NET Core 3.0: ssa

Verkkosovelluksia rakennettaessa sinun on usein tuotava tai vietävä tietoja Word- tai Excel-asiakirjoista. On useita tapoja saavuttaa tämä, ja runsaasti NuGet-paketteja Word- tai Excel-palvelimille. Tässä artikkelissa käsitellään sitä, kuinka voimme viedä tietoja Exceliin ClosedXML: n kanssa ASP.NET Core -sovelluksessa.

Jotta voit työskennellä tässä artikkelissa annettujen koodiesimerkkien kanssa, järjestelmässäsi on oltava asennettuna Visual Studio 2019. Jos sinulla ei vielä ole kopiota, voit ladata Visual Studio 2019 täältä.

Luo ASP.NET Core MVC -projekti Visual Studiossa

Ensinnäkin, luodaan ASP.NET-ydinprojekti Visual Studio 2019: ssä. Olettaen, että Visual Studio 2019 on asennettu järjestelmään, luo uusi ASP.NET Core -projekti Visual Studiossa noudattamalla alla olevia ohjeita.

  1. Käynnistä Visual Studio IDE.
  2. Napsauta Luo uusi projekti.
  3. Valitse Luo uusi projekti -ikkunassa ”ASP.NET Core Web Application” näytetystä malliluettelosta.
  4. Napsauta Seuraava.
  5. Määritä uuden projektin määritys -ikkunassa uuden projektin nimi ja sijainti.
  6. Voit vaihtoehtoisesti valita Sijoita ratkaisu ja projekti samaan hakemistoon -valintaruutu.
  7. Napsauta Luo.
  8. Valitse seuraavassa näkyvässä "Luo uusi ASP.NET-ydinverkkosovellus" -ikkunassa .NET Core ajonaikaisena ja ASP.NET Core 2.2 (tai uudempi) ylhäällä olevasta avattavasta luettelosta. Käytän ASP.NET Core 3.0: ta.
  9. Luo uusi ASP.NET Core MVC -sovellus valitsemalla projektisivuksi ”Web-sovellus (Model-View-Controller)”.
  10. Varmista, että valintaruudut Ota Docker-tuki käyttöön ja Määritä HTTPS: lle ei ole valittu, koska emme käytä näitä ominaisuuksia täällä.
  11. Varmista, että todennuksen asetuksena on Ei todentamista, koska emme myöskään käytä todennusta.
  12. Napsauta Luo.

Näiden vaiheiden noudattaminen luo uuden ASP.NET Core MVC -projektin Visual Studioon. Tätä projektia käytetään kuvaamaan tietojen vienti Exceliin seuraavissa osioissa.

Asenna ClosedXML NuGet -paketti

Jos haluat viedä tietoja Exceliin, voit valita useita kirjastoja. Yksi niistä on nimeltään ClosedXML. Voit asentaa tämän paketin joko Visual Studio 2019 IDE: n sisällä olevan NuGet-paketinhallinnan kautta tai suorittamalla seuraavan komennon NuGet-paketinhallintakonsolissa:

Install-Package ClosedXML

Vie tiedot CSV-tiedostona ASP.NET Core 3.0: sta

Tietojen vieminen pilkuilla erotettuna (CSV) -tiedostona on helppoa. Voit hyödyntää NuGet-pakettia, kuten CsvExport tai AWright18.SimpleCSVExporter, tämän saavuttamiseksi, tai voit tehdä sen manuaalisesti. Luomme yksinkertaisuuden vuoksi CSV-tiedoston manuaalisesti. Harkitse seuraavaa luokkaa nimeltä Kirjailija.

public class Kirjoittaja

{

julkinen int Id {get; aseta; }

julkinen merkkijono Etunimi {get; aseta; }

julkinen merkkijono Sukunimi {get; aseta; }

}

Seuraavaksi voit täyttää tiedot tekijäluetteloon alla olevan koodinpätkän mukaisesti.

Luettelon kirjoittajat = uusi luettelo

{

uusi kirjailija {Id = 1, Etunimi = "Joydip", Sukunimi = "Kanjilal"},

uusi kirjailija {Id = 2, Etunimi = "Steve", Sukunimi = "Smith"},

uusi kirjailija {Id = 3, Etunimi = "Anand", Sukunimi = "Narayaswamy"}

};

Seuraava koodinpätkä osoittaa, kuinka voit luoda CSV-tiedoston ohjaimen toimintamenetelmässä.

public IActionResult DownloadCommaSeperatedFile ()

{

yrittää

    {

StringBuilder stringBuilder = uusi StringBuilder ();

stringBuilder.AppendLine ("Id, Etunimi, Sukunimi");

foreach (var kirjailija tekijöinä)

       {

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

{tekijä.Etänimi}, {kirjoittaja.Sukunimi} ");

       }

palauta tiedosto (Encoding.UTF8.GetBytes

(stringBuilder.ToString ()), "teksti / csv", "tekijät.csv");

    }

saada kiinni

    {

return Error ();

    }

}

Vie tiedot XLSX-tiedostona ASP.NET Core 3.0: ssa

Excelin työkirja koostuu useista laskentataulukoista. Voit luoda Excel-työkirjan seuraavalla koodilla.

var työkirja = uusi XLWorkbook ();

Tämän jälkeen voit hyödyntää IXLWorkSheet-käyttöliittymää luodaksesi ja lisätäksesi laskentataulukoita työkirjaan alla olevan kuvan mukaisesti.

IXLWorksheet-laskentataulukko = workbook.Worksheets.Add ("Tekijät");

laskentataulukko.Solu (1, 1) .Arvo = "Id";

laskentataulukko.Solu (1, 2) .Arvo = "Etunimi";

laskentataulukko.Solu (1, 3) .Arvo = "Sukunimi";

for (int indeksi = 1; hakemisto <= tekijät. lukumäärä; indeksi ++)

{

laskentataulukko.Solu (indeksi + 1, 1) .Arvo = tekijät [indeksi - 1] .Id;

laskentataulukko.Solu (indeksi + 1, 2) .Arvo = tekijät [hakemisto - 1] .Etunimi;

laskentataulukko.Solu (indeksi + 1, 3) .Arvo = tekijät [hakemisto - 1] .LastName;

}

Viimeiseksi voit tallentaa työkirjan muistivirraksi ja luoda sitten FileContentResult-ilmentymän alla olevan kuvan mukaisesti.

käyttäen (var stream = uusi MemoryStream ())

{

työkirja.SaveAs (virta);

var content = stream.ToArray ();

return File (sisältö, sisältöTyyppi, tiedostonimi);

}

Lataa Excel-asiakirja ASP.NET Core 3.0: sta

Tässä on toimintamenetelmän täydellinen lähdekoodi, jota voidaan käyttää Excel-asiakirjan lataamiseen.

public IActionResult DownloadExcelDocument ()

        {

merkkijono contentType = "application / vnd.openxmlformats-

officedocument.spreadsheetml.sheet ";

string fileName = "tekijät.xlsx";

yrittää

            {

käyttäen (var työkirja = uusi XLWorkbook ())

                {

IXLWorksheet-laskentataulukko =

työkirja.Worksheets.Add ("Tekijät");

laskentataulukko.Solu (1, 1) .Arvo = "Id";

laskentataulukko.Solu (1, 2) .Arvo = "Etunimi";

laskentataulukko.Solu (1, 3) .Arvo = "Sukunimi";

for (int indeksi = 1; hakemisto <= tekijät. lukumäärä; indeksi ++)

                    {

laskentataulukko.Solu (indeksi + 1, 1) .Arvo =

kirjoittajat [hakemisto - 1] .Id;

laskentataulukko.Solu (indeksi + 1, 2) .Arvo =

kirjoittajat [hakemisto - 1] .Etunimi;

laskentataulukko.Solu (indeksi + 1, 3) .Arvo =

kirjoittajat [hakemisto - 1] .Sukunimi;

                    }

käyttäen (var stream = uusi MemoryStream ())

                    {

työkirja.SaveAs (virta);

var content = stream.ToArray ();

return File (sisältö, sisältöTyyppi, tiedostonimi);

                    }

                }

            }

saalis (poikkeus ex)

            {

return Error ();

            }

        }

Vaikka olemme käyttäneet ClosedXML: ää tässä artikkelissa, on olemassa useita muita paketteja Excel-tietojen lukemiseen, kirjoittamiseen ja käsittelyyn ASP.NET Core -sovelluksessa, mukaan lukien EPPlus ja NPOI. Voit oppia lisää ClosedXML: stä GitHubissa osoitteessa //github.com/ClosedXML/ClosedXML. Aion keskustella Excel-tietojen tuonnista ASP.NET Core -sovelluksessa tulevassa postissa täällä.

Kuinka tehdä enemmän ASP.NET- ja ASP.NET Core -sovelluksissa:

  • Kuinka käyttää muistin välimuistia ASP.NET Core -sovelluksessa
  • Kuinka käsitellä virheitä ASP.NET Web API: ssa
  • Kuinka välittää useita parametreja Web-API-ohjaimen menetelmille
  • Kuinka kirjataan pyyntö- ja vastaustiedot, ASP.NET Web API
  • Kuinka työskennellä HttpModulesin kanssa ASP.NET: ssä
  • Edistynyt versiointi ASP.NET Core Web -sovellusliittymässä
  • Kuinka riippuvuusinjektiota käytetään ASP.NET Core -sovelluksessa
  • Kuinka käyttää istuntoja ASP.NET: ssä
  • Kuinka työskennellä HTTPHandlersin kanssa ASP.NET: ssä
  • IHostedServicen käyttäminen ASP.NET Core -sovelluksessa
  • Kuinka käyttää WCF SOAP -palvelua ASP.NET Core -sovelluksessa
  • Kuinka parantaa ASP.NET Core -sovellusten suorituskykyä
  • ASP.NET Core Web -sovellusliittymän kuluttaminen RestSharpin avulla
  • Kuinka kirjautua sisään ASP.NET Core -sovelluksessa
  • Kuinka käyttää MediatR: ää ASP.NET Core -sovelluksessa
  • Istunnon tilan käyttäminen ASP.NET Core -sovelluksessa
  • Kuinka Nancyä käytetään ASP.NET Core -sovelluksessa
  • Ymmärrä parametrien sitominen ASP.NET Web API: ssa
  • Tiedostojen lataaminen ASP.NET Core MVC: hen
  • Kuinka toteuttaa yleinen poikkeusten käsittely ASP.NET Core Web API: ssa
  • Terveystarkastusten toteuttaminen ASP.NET Core -sovelluksessa
  • Parhaat käytännöt välimuistiin tallentamisessa ASP.NET: ssä
  • Apache Kafka -viestien käyttäminen .NET-sovelluksessa
  • Kuinka CORS otetaan käyttöön Web-sovellusliittymässä
  • Milloin käyttää WebClientiä vs. HttpClient vs.HttpWebRequest
  • Kuinka työskennellä Redis-välimuistin kanssa .NET
  • Milloin Task.WaitAll vs. Task.WhenAll on .NET-verkossa
$config[zx-auto] not found$config[zx-overlay] not found