Programmēšana

Kā eksportēt datus uz Excel programmā ASP.NET Core 3.0

Veidojot tīmekļa lietojumprogrammas, jums bieži būs jāimportē vai jāeksportē dati no Word vai Excel dokumentiem vai uz tiem. Ir vairāki veidi, kā to panākt, un daudz NuGet pakotņu darbam ar Word vai Excel. Šajā rakstā ir apspriests, kā mēs varam strādāt ar ClosedXML programmā ASP.NET Core, lai eksportētu datus uz Excel.

Lai strādātu ar šajā rakstā sniegtajiem kodu piemēriem, sistēmā jābūt instalētai Visual Studio 2019. Ja jums vēl nav kopijas, varat lejupielādēt Visual Studio 2019 šeit.

Izveidojiet ASP.NET Core MVC projektu Visual Studio

Vispirms izveidosim ASP.NET Core projektu Visual Studio 2019. Pieņemot, ka Visual Studio 2019 ir instalēta jūsu sistēmā, veiciet tālāk norādītās darbības, lai izveidotu jaunu ASP.NET Core projektu Visual Studio.

  1. Palaidiet Visual Studio IDE.
  2. Noklikšķiniet uz “Izveidot jaunu projektu”.
  3. Logā “Izveidot jaunu projektu” parādīto veidņu sarakstā atlasiet “ASP.NET Core Web Application”.
  4. Noklikšķiniet uz Tālāk.
  5. Logā “Konfigurēt jauno projektu” norādiet jaunā projekta nosaukumu un vietu.
  6. Pēc izvēles atzīmējiet izvēles rūtiņu “Novietot risinājumu un projektu vienā direktorijā”.
  7. Noklikšķiniet uz Izveidot.
  8. Nākamajā logā “Izveidot jaunu ASP.NET Core tīmekļa lietojumprogrammu” augšpusē esošajā nolaižamajā sarakstā atlasiet .NET Core kā izpildlaiku un ASP.NET Core 2.2 (vai jaunāku). Es izmantošu ASP.NET Core 3.0.
  9. Atlasiet “Web Application (Model-View-Controller)” kā projekta veidni, lai izveidotu jaunu ASP.NET Core MVC lietojumprogrammu.
  10. Pārliecinieties, vai nav atzīmētas izvēles rūtiņas “Iespējot Docker atbalstu” un “Konfigurēt HTTPS”, jo mēs šeit neizmantosim šīs funkcijas.
  11. Pārliecinieties, vai autentifikācijai ir iestatīta vērtība “Nav autentifikācijas”, jo mēs arī neizmantosim autentifikāciju.
  12. Noklikšķiniet uz Izveidot.

Veicot šīs darbības, Visual Studio jāizveido jauns ASP.NET Core MVC projekts. Mēs izmantosim šo projektu, lai ilustrētu datu eksportēšanu programmā Excel zemāk esošajās sadaļās.

Instalējiet ClosedXML NuGet pakotni

Ja vēlaties eksportēt datus uz Excel, varat izvēlēties vairākas bibliotēkas. Viens no tiem ir nosaukts ClosedXML. Šo pakotni varat instalēt, izmantojot NuGet pakotņu pārvaldnieku Visual Studio 2019 IDE, vai arī izpildot šādu komandu NuGet pakotņu pārvaldnieka konsolē:

Install-Package ClosedXML

Eksportējiet datus kā CSV failu no ASP.NET Core 3.0

Datu eksportēšana komatatdalītā (CSV) failā ir vienkārša. Lai to panāktu, varat izmantot NuGet pakotnes, piemēram, CsvExport vai AWright18.SimpleCSVExporter priekšrocības, vai arī to varētu izdarīt manuāli. Vienkāršības labad CSV failu ģenerēsim manuāli. Apsveriet šādu klasi ar nosaukumu Autors.

sabiedrības klase Autors

{

public int Id {get; komplekts; }

publiskā virkne FirstName {get; komplekts; }

publiskā virkne Uzvārds {get; komplekts; }

}

Pēc tam jūs varat aizpildīt datus autoru sarakstā, kā parādīts tālāk sniegtajā koda fragmentā.

Saraksta autori = jauns saraksts

{

jauns autors {Id = 1, Vārds = "Joydip", Uzvārds = "Kanjilal"},

jauns autors {Id = 2, Vārds = "Stīvs", Uzvārds = "Smits"},

jauns autors {Id = 3, Vārds = "Anand", Uzvārds = "Narayaswamy"}

};

Šis koda fragments parāda, kā jūs varat ģenerēt CSV failu kontroliera darbības metodē.

public IActionResult DownloadCommaSeperatedFile ()

{

mēģiniet

    {

StringBuilder stringBuilder = jauns StringBuilder ();

stringBuilder.AppendLine ("Id, FirstName, LastName");

foreach (aut. aut. aut.)

       {

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

{autors.Vārda Vārds}, {autors.Vārda Vārds} ");

       }

atgriezt File (Encoding.UTF8.GetBytes

(stringBuilder.ToString ()), "teksts / csv", "autori.csv");

    }

noķert

    {

atgriešanās Kļūda ();

    }

}

Eksportējiet datus kā XLSX failu ASP.NET Core 3.0

Darbgrāmata programmā Excel sastāv no vairākām darblapām. Excel darbgrāmatu var izveidot, izmantojot šo kodu.

var darbgrāmata = jauna XLWorkbook ();

Pēc tam varat izmantot IXLWorkSheet saskarnes priekšrocības, lai izveidotu un pievienotu darblapas darbgrāmatai, kā parādīts zemāk.

IXLWorksheet darblapa = darbgrāmata.Worksheets.Add ("Autori");

darblapa.Šūna (1, 1) .Vērtība = "Id";

darblapa.Šūna (1, 2) .Vērtība = "Vārds";

darblapa.Šūna (1, 3) .Vērtība = "Uzvārds";

for (int indekss = 1; indekss <= autori. Skaits; indekss ++)

{

darblapa.Šūna (indekss + 1, 1) .Vērtība = autori [rādītājs - 1] .Id;

darblapa.Šūna (indekss + 1, 2) .Vērtība = autori [rādītājs - 1] .Vārds;

darblapa.Šūna (indekss + 1, 3) .Vērtība = autori [rādītājs - 1] .LastName;

}

Visbeidzot, jūs varat saglabāt darbgrāmatu kā atmiņas straumi un pēc tam izveidot FileContentResult instanci, kā parādīts zemāk.

izmantojot (var straume = jauna MemoryStream ())

{

darbgrāmata.SaveAs (straume);

var saturs = straume.ToArray ();

return File (saturs, contentType, faila nosaukums);

}

Lejupielādējiet Excel dokumentu ASP.NET Core 3.0

Šeit ir pilns darbības metodes avota kods, ko var izmantot, lai lejupielādētu Excel dokumentu.

public IActionResult DownloadExcelDocument ()

        {

string stringType = "application / vnd.openxmlformats-

officedocument.spreadsheetml.sheet ";

string fileName = "autori.xlsx";

mēģiniet

            {

izmantojot (var darbgrāmata = jauna XLWorkbook ())

                {

IXLWorksheet darblapa =

darbgrāmata.Worksheets.Add ("Autori");

darblapa.Šūna (1, 1) .Vērtība = "Id";

darblapa.Šūna (1, 2) .Vērtība = "Vārds";

darblapa.Šūna (1, 3) .Vērtība = "Uzvārds";

par (int indekss = 1; indekss <= autori. Skaits; indekss ++)

                    {

darblapa. Šūna (indekss + 1, 1). Vērtība =

autori [rādītājs - 1] .Id;

darblapa. Šūna (indekss + 1, 2). Vērtība =

autori [rādītājs - 1] .Vārds;

darblapa. Šūna (indekss + 1, 3). Vērtība =

autori [rādītājs - 1] .LastName;

                    }

izmantojot (var straume = jauna MemoryStream ())

                    {

darbgrāmata.SaveAs (straume);

var saturs = straume.ToArray ();

return File (saturs, contentType, faila nosaukums);

                    }

                }

            }

nozveja (izņēmums ex)

            {

atgriešanās Kļūda ();

            }

        }

Lai gan šajā rakstā mēs esam izmantojuši ClosedXML, ASP.NET Core Excel datu lasīšanai, rakstīšanai un manipulēšanai ir vairākas citas paketes, tostarp EPPlus un NPOI. Jūs varat uzzināt vairāk par ClosedXML vietnē GitHub vietnē //github.com/ClosedXML/ClosedXML. Excel datu importēšanu ASP.NET Core lietojumprogrammā es apspriedīšu turpmākajā šeit.

Kā darīt vairāk programmās ASP.NET un ASP.NET Core:

  • Kā izmantot atmiņas kešatmiņu ASP.NET Core
  • Kā rīkoties ar kļūdām ASP.NET Web API
  • Kā pārsūtīt vairākus parametrus Web API kontroliera metodēm
  • Kā reģistrēt pieprasījuma un atbildes metadatus ASP.NET Web API
  • Kā strādāt ar HttpModules ASP.NET
  • Uzlabota versiju veidošana ASP.NET Core Web API
  • Kā izmantot atkarības injekciju ASP.NET Core
  • Kā strādāt ar sesijām ASP.NET
  • Kā strādāt ar HTTPHandleriem ASP.NET
  • Kā izmantot IHostedService ASP.NET Core
  • Kā patērēt WCF SOAP pakalpojumu ASP.NET Core
  • Kā uzlabot ASP.NET Core lietojumprogrammu veiktspēju
  • Kā patērēt ASP.NET Core Web API, izmantojot RestSharp
  • Kā strādāt ar reģistrēšanos ASP.NET Core
  • Kā izmantot MediatR ASP.NET Core
  • Kā strādāt ar sesijas stāvokli ASP.NET Core
  • Kā Nancy izmantot ASP.NET Core
  • Izprotiet parametru saistīšanu ASP.NET Web API
  • Kā augšupielādēt failus ASP.NET Core MVC
  • Kā ieviest globālo izņēmumu apstrādi ASP.NET Core Web API
  • Kā ieviest veselības pārbaudes ASP.NET Core
  • Labākā prakse kešatmiņā ASP.NET
  • Kā izmantot Apache Kafka ziņojumapmaiņu .NET
  • Kā iespējot CORS savā tīmekļa API
  • Kad lietot WebClient pret HttpClient pret HttpWebRequest
  • Kā strādāt ar Redis kešatmiņu .NET
  • Kad .NET izmantot Task.WaitAll pret Task.WhenAll
$config[zx-auto] not found$config[zx-overlay] not found