Programování

Jak exportovat data do aplikace Excel v ASP.NET Core 3.0

Při vytváření webových aplikací budete často muset importovat nebo exportovat data z nebo do dokumentů Word nebo Excel. Existuje několik způsobů, jak toho dosáhnout, a spousta balíčků NuGet pro práci s Wordem nebo Excelem. Tento článek pojednává o tom, jak můžeme pracovat s ClosedXML v ASP.NET Core k exportu dat do aplikace Excel.

Chcete-li pracovat s příklady kódu uvedenými v tomto článku, měli byste mít ve svém systému nainstalovanou Visual Studio 2019. Pokud ještě nemáte kopii, můžete si stáhnout Visual Studio 2019 zde.

Vytvořte projekt ASP.NET Core MVC v sadě Visual Studio

Nejprve si vytvořme projekt ASP.NET Core ve Visual Studiu 2019. Za předpokladu, že je ve vašem systému nainstalovaná Visual Studio 2019, vytvořte nový projekt ASP.NET Core ve Visual Studiu podle níže uvedených kroků.

  1. Spusťte Visual Studio IDE.
  2. Klikněte na „Vytvořit nový projekt“.
  3. V okně „Vytvořit nový projekt“ vyberte ze zobrazeného seznamu šablon „Webová aplikace ASP.NET Core“.
  4. Klikněte na Další.
  5. V okně „Konfigurace nového projektu“ zadejte název a umístění nového projektu.
  6. Volitelně zaškrtněte políčko „Umístit řešení a projekt do stejného adresáře“.
  7. Klikněte na Vytvořit.
  8. V okně „Vytvořit novou webovou aplikaci ASP.NET Core“, které se zobrazí dále, vyberte .NET Core jako běhový modul a ASP.NET Core 2.2 (nebo novější) z rozevíracího seznamu v horní části. Budu používat ASP.NET Core 3.0.
  9. Vyberte „Webová aplikace (Model-View-Controller)“ jako šablonu projektu a vytvořte novou aplikaci ASP.NET Core MVC.
  10. Ujistěte se, že políčka „Povolit podporu Dockeru“ a „Konfigurovat pro HTTPS“ nejsou zaškrtnuta, protože zde tyto funkce nebudeme používat.
  11. Ujistěte se, že je ověřování nastaveno na „Bez ověřování“, protože také nebudeme používat ověřování.
  12. Klikněte na Vytvořit.

Následující kroky by měly vytvořit nový projekt ASP.NET Core MVC v sadě Visual Studio. Tento projekt použijeme k ilustraci exportu dat pro Excel v následujících částech.

Nainstalujte balíček ClosedXML NuGet

Pokud chcete exportovat data do aplikace Excel, můžete si vybrat z několika knihoven. Jeden z nich se jmenuje ClosedXML. Tento balíček můžete nainstalovat buď prostřednictvím správce balíčků NuGet uvnitř IDE sady Visual Studio 2019, nebo provedením následujícího příkazu v konzole správce balíčků NuGet:

Instalační balíček ClosedXML

Exportujte data jako soubor CSV z ASP.NET Core 3.0

Export dat jako souboru odděleného čárkami (CSV) je jednoduchý. K dosažení tohoto cíle můžete využít balíček NuGet, jako je CsvExport nebo AWright18.SimpleCSVExporter, nebo to můžete udělat ručně. Z důvodu zjednodušení vygenerujeme soubor CSV ručně. Zvažte následující třídu s názvem Autor.

veřejná třída Autor

{

public int Id {get; soubor; }

public string FirstName {get; soubor; }

veřejný řetězec Příjmení {get; soubor; }

}

Dále můžete data naplnit do seznamu autorů, jak je ukázáno ve fragmentu kódu uvedeném níže.

Seznam autorů = nový Seznam

{

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

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

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

};

Následující fragment kódu ukazuje, jak můžete vygenerovat soubor CSV v metodě akce vašeho řadiče.

public IActionResult DownloadCommaSeperatedFile ()

{

Snaž se

    {

StringBuilder stringBuilder = nový StringBuilder ();

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

foreach (var autor v autorech)

       {

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

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

       }

vrátit soubor (Encoding.UTF8.GetBytes

(stringBuilder.ToString ()), "text / csv", "autoři.csv");

    }

chytit

    {

vrátit chybu ();

    }

}

Exportujte data jako soubor XLSX v ASP.NET Core 3.0

Sešit v aplikaci Excel se skládá z několika listů. Sešit aplikace Excel můžete vytvořit pomocí následujícího kódu.

var sešit = nový XLWorkbook ();

Potom můžete využít rozhraní IXLWorkSheet k vytváření a přidávání listů do sešitu, jak je znázorněno níže.

IXLWorksheet worksheet = workbook.Worksheets.Add ("Autoři");

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

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

worksheet.Cell (1, 3) .Value = "Příjmení";

pro (int index = 1; index <= autoři.Count; index ++)

{

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

worksheet.Cell (index + 1, 2) .Hodnota = autoři [index - 1]. FirstName;

worksheet.Cell (index + 1, 3) .Hodnota = autoři [index - 1]. LastName;

}

Nakonec můžete sešit uložit jako proud paměti a poté vytvořit instanci FileContentResult, jak je znázorněno níže.

pomocí (var stream = new MemoryStream ())

{

workbook.SaveAs (stream);

var content = stream.ToArray ();

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

}

Stáhněte si dokument Excel v ASP.NET Core 3.0

Zde je kompletní zdrojový kód metody akce, kterou lze použít ke stažení dokumentu aplikace Excel.

public IActionResult DownloadExcelDocument ()

        {

string contentType = "application / vnd.openxmlformats-

officedocument.spreadsheetml.sheet ";

řetězec fileName = "autoři.xlsx";

Snaž se

            {

pomocí (var workbook = new XLWorkbook ())

                {

Pracovní list IXLWorks =

workbook.Worksheets.Add ("Autoři");

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

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

worksheet.Cell (1, 3) .Value = "Příjmení";

pro (int index = 1; index <= autoři.Count; index ++)

                    {

works.Cell (index + 1, 1). Hodnota =

autoři [index - 1] .Id;

works.Cell (index + 1, 2). Hodnota =

autoři [index - 1]. FirstName;

works.Cell (index + 1, 3). Hodnota =

autoři [index - 1]. LastName;

                    }

pomocí (var stream = new MemoryStream ())

                    {

workbook.SaveAs (stream);

var content = stream.ToArray ();

vrátit soubor (content, contentType, fileName);

                    }

                }

            }

úlovek (výjimka mimo)

            {

vrátit chybu ();

            }

        }

I když jsme v tomto článku použili ClosedXML, existuje několik dalších balíčků pro čtení, zápis a manipulaci s daty aplikace Excel v ASP.NET Core, včetně EPPlus a NPOI. Další informace o ClosedXML na GitHubu najdete na //github.com/ClosedXML/ClosedXML. O importu dat aplikace Excel do aplikace ASP.NET Core budu diskutovat v budoucím příspěvku zde.

Jak udělat více v ASP.NET a ASP.NET Core:

  • Jak používat ukládání do mezipaměti v paměti ASP.NET Core
  • Jak zpracovat chyby v ASP.NET Web API
  • Jak předat více parametrů metodám webového kontroleru API
  • Jak protokolovat metadata požadavků a odpovědí ve webovém rozhraní API ASP.NET
  • Jak pracovat s HttpModules v ASP.NET
  • Pokročilé správy verzí v ASP.NET Core Web API
  • Jak používat vkládání závislostí v ASP.NET Core
  • Jak pracovat s relacemi v ASP.NET
  • Jak pracovat s HTTPHandlers v ASP.NET
  • Jak používat IHostedService v ASP.NET Core
  • Jak využívat službu WCF SOAP v ASP.NET Core
  • Jak zlepšit výkon aplikací ASP.NET Core
  • Jak konzumovat webové rozhraní API ASP.NET Core pomocí RestSharp
  • Jak pracovat s protokolováním v ASP.NET Core
  • Jak používat MediatR v ASP.NET Core
  • Jak pracovat se stavem relace v ASP.NET Core
  • Jak používat Nancy v ASP.NET Core
  • Vysvětlení vazby parametrů v ASP.NET Web API
  • Jak nahrávat soubory v ASP.NET Core MVC
  • Jak implementovat globální zpracování výjimek ve webovém rozhraní API ASP.NET Core
  • Jak implementovat kontroly stavu v ASP.NET Core
  • Osvědčené postupy při ukládání do mezipaměti v ASP.NET
  • Jak používat zasílání zpráv Apache Kafka v .NET
  • Jak povolit CORS ve vašem webovém rozhraní API
  • Kdy použít WebClient vs. HttpClient vs. HttpWebRequest
  • Jak pracovat s Redis Cache v .NET
  • Kdy použít Task.WaitAll vs. Task.WhenAll v .NET