Экспорт файла Excel в C# ASP.NET с использованием ExcelPackage

Чтобы экспортировать файл Excel на C# с помощью ASP.NET и библиотеки ExcelPackage, выполните следующие действия:

  1. Установите пакет ExcelPackage NuGet. Откройте консоль диспетчера пакетов NuGet в Visual Studio и выполните следующую команду, чтобы установить библиотеку ExcelPackage:

    Install-Package ExcelPackage
  2. Импортируйте необходимые пространства имен: добавьте следующие инструкции using в начало файла C#:

    using OfficeOpenXml;
    using System.IO;
  3. Создание нового пакета и листа Excel. Создайте экземпляр объекта ExcelPackage и создайте новый лист.

    ExcelPackage.LicenseContext = LicenseContext.NonCommercial; // Set the license context
    ExcelPackage excelPackage = new ExcelPackage();
    ExcelWorksheet worksheet = excelPackage.Workbook.Worksheets.Add("Sheet1");
  4. Заполнение листа данными. Добавляйте данные на лист, обращаясь к отдельным ячейкам с помощью индексов строк и столбцов.

    worksheet.Cells["A1"].Value = "Column 1";
    worksheet.Cells["B1"].Value = "Column 2";
    worksheet.Cells["A2"].Value = "Data 1";
    worksheet.Cells["B2"].Value = "Data 2";
    // Add more data as needed
  5. Сохранение файла Excel: сохраните пакет Excel в потоке или файле.

    • Сохранить в ленту:
      MemoryStream stream = new MemoryStream();
      excelPackage.SaveAs(stream);
      stream.Position = 0;
    • Сохранить в файл:
      FileInfo fileInfo = new FileInfo("path/to/file.xlsx");
      excelPackage.SaveAs(fileInfo);
  6. Предоставьте файл Excel для загрузки. В веб-приложении ASP.NET вы можете отправить файл Excel клиенту для загрузки, установив соответствующие заголовки ответа.

    • Для скачивания из потока:
      Response.Clear();
      Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
      Response.Headers.Add("content-disposition", "attachment;filename=file.xlsx");
      Response.Body.Write(stream.ToArray());
      Response.Body.Flush();
      Response.End();
    • Для скачивания из файла:
      Response.Clear();
      Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
      Response.Headers.Add("content-disposition", "attachment;filename=file.xlsx");
      Response.TransmitFile(fileInfo.FullName);
      Response.End();

Вот и все! Теперь вы экспортировали файл Excel на C# с помощью ASP.NET и библиотеки ExcelPackage.