Programovanie

Ako exportovať údaje do programu Excel v ASP.NET Core 3.0

Pri vytváraní webových aplikácií budete často musieť importovať alebo exportovať údaje z alebo do dokumentov Word alebo Excel. Existuje niekoľko spôsobov, ako to dosiahnuť, a veľa balíkov NuGet na prácu s programami Word alebo Excel. Tento článok pojednáva o tom, ako môžeme pracovať s ClosedXML v ASP.NET Core na export údajov do Excelu.

Ak chcete pracovať s príkladmi kódu uvedenými v tomto článku, mali by ste mať vo svojom systéme nainštalovanú aplikáciu Visual Studio 2019. Ak ešte nemáte kópiu, môžete si tu stiahnuť Visual Studio 2019.

Vytvorte projekt ASP.NET Core MVC v Visual Studio

Najprv si vytvoríme projekt ASP.NET Core v Visual Studio 2019. Za predpokladu, že je vo vašom systéme nainštalované Visual Studio 2019, vytvorte nový projekt ASP.NET Core v Visual Studio podľa krokov uvedených nižšie.

  1. Spustite Visual Studio IDE.
  2. Kliknite na „Vytvoriť nový projekt“.
  3. V okne „Vytvoriť nový projekt“ vyberte zo zobrazeného zoznamu šablón „Webová aplikácia ASP.NET Core“.
  4. Kliknite na Ďalej.
  5. V okne „Konfigurácia nového projektu“ zadajte názov a umiestnenie nového projektu.
  6. Prípadne začiarknite políčko „Umiestniť riešenie a projekt do rovnakého adresára“.
  7. Kliknite na tlačidlo Vytvoriť.
  8. V nasledujúcom okne „Vytvorenie novej webovej aplikácie ASP.NET Core“ vyberte z rozbaľovacieho zoznamu v hornej časti .NET Core ako runtime a ASP.NET Core 2.2 (alebo novší). Budem používať ASP.NET Core 3.0.
  9. Vyberte „Webová aplikácia (Model-View-Controller)“ ako šablónu projektu na vytvorenie novej aplikácie ASP.NET Core MVC.
  10. Skontrolujte, či nie sú začiarknuté políčka „Povoliť podporu Docker“ a „Konfigurovať pre HTTPS“, pretože tu nebudeme tieto funkcie používať.
  11. Skontrolujte, či je overenie nastavené na „Bez overenia“, pretože tiež nebudeme používať overenie.
  12. Kliknite na tlačidlo Vytvoriť.

Podľa týchto krokov by ste mali v Visual Studio vytvoriť nový projekt ASP.NET Core MVC. Tento projekt použijeme na ilustráciu exportu údajov pre Excel v nižšie uvedených sekciách.

Nainštalujte si balíček ClosedXML NuGet

Ak chcete exportovať údaje do programu Excel, môžete si vybrať z niekoľkých knižníc. Jeden z nich sa volá ClosedXML. Tento balík môžete nainštalovať buď prostredníctvom správcu balíkov NuGet vo vnútri Visual Studio 2019 IDE, alebo vykonaním nasledujúceho príkazu v konzole správcu balíkov NuGet:

Inštalačný balík ClosedXML

Exportujte údaje ako súbor CSV z ASP.NET Core 3.0

Export údajov ako súboru oddeleného čiarkou (CSV) je jednoduchý. Na dosiahnutie tohto cieľa môžete využiť balíček NuGet, napríklad CsvExport alebo AWright18.SimpleCSVExporter, alebo to môžete urobiť manuálne. Kvôli jednoduchosti vygenerujeme súbor CSV manuálne. Zvážte nasledujúcu triedu s názvom Autor.

verejná trieda Autor

{

public int Id {get; sada; }

verejný reťazec FirstName {get; sada; }

verejný reťazec Priezvisko {get; sada; }

}

Ďalej môžete údaje vyplniť do zoznamu autorov, ako je uvedené v útržku kódu uvedenom nižšie.

Autori zoznamu = nový Zoznam

{

nový autor {Id = 1, krstné meno = "Joydip", priezvisko = "Kanjilal"},

nový autor {Id = 2, FirstName = "Steve", LastName = "Smith"},

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

};

Nasledujúci úryvok kódu ukazuje, ako môžete vygenerovať súbor CSV pomocou metódy akcie vášho ovládača.

public IActionResult DownloadCommaSeperatedFile ()

{

skús

    {

StringBuilder stringBuilder = nový StringBuilder ();

stringBuilder.AppendLine ("Id, meno, priezvisko");

foreach (var autor v autoroch)

       {

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

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

       }

vrátiť súbor (Encoding.UTF8.GetBytes

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

    }

chytiť

    {

chyba návratu ();

    }

}

Exportujte údaje ako súbor XLSX v ASP.NET Core 3.0

Zošit v programe Excel sa skladá z niekoľkých pracovných hárkov. Zošit programu Excel môžete vytvoriť pomocou nasledujúceho kódu.

var zošit = nový XLWorkbook ();

Potom môžete využiť rozhranie IXLWorkSheet na vytváranie a pridávanie pracovných hárkov do zošita, ako je uvedené nižšie.

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

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

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

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

pre (int index = 1; index <= autorov.Count; index ++)

{

worksheet.Cell (index + 1, 1) .Hodnota = autori [index - 1] .Id;

pracovný list.Cell (index + 1, 2) .Hodnota = autori [index - 1]. Prvé meno;

pracovný list.Cell (index + 1, 3) .Hodnota = autori [index - 1] .Posledné meno;

}

Nakoniec môžete zošit uložiť ako prúd pamäte a potom vytvoriť inštanciu FileContentResult, ako je uvedené nižšie.

pomocou (var stream = new MemoryStream ())

{

workbook.SaveAs (stream);

var content = stream.ToArray ();

návrat File (content, contentType, fileName);

}

Stiahnite si dokument programu Excel v ASP.NET Core 3.0

Tu je kompletný zdrojový kód metódy akcie, ktorý je možné použiť na stiahnutie dokumentu programu Excel.

public IActionResult DownloadExcelDocument ()

        {

string contentType = "application / vnd.openxmlformats-

officedocument.spreadsheetml.sheet ";

reťazec fileName = "autori.xlsx";

skús

            {

pomocou (var workbook = new XLWorkbook ())

                {

Pracovný list IXLWorks =

workbook.Worksheets.Add ("Authors");

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

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

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

pre (int index = 1; index <= autorov.Count; index ++)

                    {

pracovný hárok. Bunka (index + 1, 1). Hodnota =

autori [index - 1] .Id;

pracovný hárok. Bunka (index + 1, 2). Hodnota =

autori [index - 1] .prve meno;

pracovný hárok. Bunka (index + 1, 3). Hodnota =

autori [index - 1] .posledné meno;

                    }

pomocou (var stream = new MemoryStream ())

                    {

workbook.SaveAs (stream);

var content = stream.ToArray ();

návrat File (content, contentType, fileName);

                    }

                }

            }

úlovok (výnimka okrem)

            {

chyba návratu ();

            }

        }

Aj keď sme v tomto článku použili ClosedXML, existuje niekoľko ďalších balíkov na čítanie, zápis a manipuláciu s údajmi programu Excel v ASP.NET Core, vrátane EPPlus a NPOI. Ďalšie informácie o ClosedXML na GitHube nájdete na //github.com/ClosedXML/ClosedXML. O importovaní údajov programu Excel do aplikácie ASP.NET Core sa budem diskutovať v budúcom príspevku tu.

Ako urobiť viac v ASP.NET a ASP.NET Core:

  • Ako používať ukladanie do pamäte cache v ASP.NET Core
  • Ako spracovať chyby v webovom rozhraní API ASP.NET
  • Ako odovzdať viaceré parametre metódam radiča webového API
  • Ako prihlásiť metadáta požiadaviek a odpovedí do webového rozhrania ASP.NET Web API
  • Ako pracovať s HttpModules v ASP.NET
  • Pokročilé spravovanie verzií v webovom rozhraní API ASP.NET Core
  • Ako používať vkladanie závislostí v ASP.NET Core
  • Ako pracovať s reláciami v ASP.NET
  • Ako pracovať s HTTPHandlers v ASP.NET
  • Ako používať IHostedService v ASP.NET Core
  • Ako spotrebovať službu WCF SOAP v ASP.NET Core
  • Ako zlepšiť výkon aplikácií ASP.NET Core
  • Ako konzumovať webové rozhranie API ASP.NET Core pomocou nástroja RestSharp
  • Ako pracovať s prihlásením do ASP.NET Core
  • Ako používať MediatR v ASP.NET Core
  • Ako pracovať so stavom relácie v ASP.NET Core
  • Ako používať Nancy v ASP.NET Core
  • Pochopte väzbu parametrov vo webovom rozhraní API ASP.NET
  • Ako nahrávať súbory v ASP.NET Core MVC
  • Ako implementovať globálne spracovanie výnimiek v webovom rozhraní API ASP.NET Core
  • Ako implementovať kontroly stavu v ASP.NET Core
  • Najlepšie postupy pri ukladaní do pamäte cache v ASP.NET
  • Ako používať zasielanie správ Apache Kafka v .NET
  • Ako povoliť CORS vo vašom webovom rozhraní API
  • Kedy použiť WebClient vs. HttpClient vs. HttpWebRequest
  • Ako pracovať s Redis Cache v .NET
  • Kedy použiť Task.WaitAll vs. Task.WhenAll v .NET
$config[zx-auto] not found$config[zx-overlay] not found