溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

如何在ASP.NET中使用EPPlus導(dǎo)入導(dǎo)出Excel文件

發(fā)布時(shí)間:2021-05-17 17:02:46 來(lái)源:億速云 閱讀:366 作者:Leah 欄目:開(kāi)發(fā)技術(shù)

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)如何在ASP.NET中使用EPPlus導(dǎo)入導(dǎo)出Excel文件,文章內(nèi)容豐富且以專(zhuān)業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

創(chuàng)建一個(gè)新的ASP.NET Core WEB API應(yīng)用程序并安裝EPPlus.Core。要安裝EPPlus.Core,請(qǐng)?jiān)诔绦虬芾砥骺刂婆_(tái)中運(yùn)行以下命令:

PM->Install-Package EPPlus.Core

或者您可以通過(guò)UI界面來(lái)安裝它.

如何在ASP.NET中使用EPPlus導(dǎo)入導(dǎo)出Excel文件

 一切就緒,現(xiàn)在創(chuàng)建一個(gè)控制器,命名為: ImportExportController ,添加后,讓我們編寫(xiě)導(dǎo)出方法。

為了方便演示,我在wwwroot文件夾中創(chuàng)建了一個(gè)excel文件,所以我們就需要去獲取我們的項(xiàng)目的絕對(duì)路徑。

 public class ImportExportController : ControllerBase
 {
  private readonly IHostingEnvironment _hostingEnvironment;

  public ImportExportController(IHostingEnvironment hostingEnvironment)
  {
   _hostingEnvironment = hostingEnvironment;
  }
 }

 ExcelPackage 在 OfficeOpenXml 命名空間中可用的類(lèi)將用于讀寫(xiě)xlsx。定義名為“Export”的新Web api操作方法,該方法返回生成的xlsx文件的URL。所以這是將數(shù)據(jù)導(dǎo)出到xlsx的完整代碼。其中您需要 using OfficeOpenXml;

  [HttpGet]
  public string Export()
  {
   string sWebRootFolder = _hostingEnvironment.WebRootPath;
   string sFileName = @"demo.xlsx";
   string URL = string.Format("{0}://{1}/{2}", Request.Scheme, Request.Host, sFileName);
   FileInfo file = new FileInfo(Path.Combine(sWebRootFolder, sFileName));
   if (file.Exists)
   {
    file.Delete();
    file = new FileInfo(Path.Combine(sWebRootFolder, sFileName));
   }
   using (ExcelPackage package = new ExcelPackage(file))
   {
    // add a new worksheet to the empty workbook
    ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Employee");
    //First add the headers
    worksheet.Cells[1, 1].Value = "ID";
    worksheet.Cells[1, 2].Value = "Name";
    worksheet.Cells[1, 3].Value = "Gender";
    worksheet.Cells[1, 4].Value = "Salary (in $)";

    //Add values
    worksheet.Cells["A2"].Value = 1000;
    worksheet.Cells["B2"].Value = "Jon";
    worksheet.Cells["C2"].Value = "M";
    worksheet.Cells["D2"].Value = 5000;

    worksheet.Cells["A3"].Value = 1001;
    worksheet.Cells["B3"].Value = "Graham";
    worksheet.Cells["C3"].Value = "M";
    worksheet.Cells["D3"].Value = 10000;

    worksheet.Cells["A4"].Value = 1002;
    worksheet.Cells["B4"].Value = "Jenny";
    worksheet.Cells["C4"].Value = "F";
    worksheet.Cells["D4"].Value = 5000;

    package.Save(); //Save the workbook.
   }
   return URL;
  }

就這樣。現(xiàn)在,當(dāng)您運(yùn)行此應(yīng)用程序并調(diào)用export方法時(shí)。完成后,訪問(wèn)wwwroot您的應(yīng)用程序的文件夾。您應(yīng)該在系統(tǒng)上看到“demo.xlsx”。當(dāng)你打開(kāi)它時(shí),你應(yīng)該看到以下內(nèi)容。

如何在ASP.NET中使用EPPlus導(dǎo)入導(dǎo)出Excel文件

您還可以對(duì)標(biāo)題進(jìn)行加粗,這些并不是EPPlus.Core給我們提供的,你需要引用 using OfficeOpenXml; using OfficeOpenXml.Style;

using (var cells = worksheet.Cells[1, 1, 1, 4])
    {
     cells.Style.Font.Bold = true;
     cells.Style.Fill.PatternType = ExcelFillStyle.Solid;
     cells.Style.Fill.BackgroundColor.SetColor(Color.LightGray);
    }

如何在ASP.NET中使用EPPlus導(dǎo)入導(dǎo)出Excel文件 

 關(guān)于導(dǎo)入,其實(shí)真實(shí)的情況還是比較復(fù)雜的,我們這里就不進(jìn)行驗(yàn)證了,對(duì)于演示,我們只是讀取剛剛保存的文件。 ImportAPI 將讀取文件并以格式化的字符串返回文件內(nèi)容。以下是導(dǎo)入API的完整代碼,用于讀取xlsx,創(chuàng)建文件內(nèi)容的格式化字符串并返回相同的內(nèi)容。

[HttpGet]
  [Route("Import")]
  public string Import()
  {
   string sWebRootFolder = _hostingEnvironment.WebRootPath;
   string sFileName = @"demo.xlsx";
   FileInfo file = new FileInfo(Path.Combine(sWebRootFolder, sFileName));
   try
   {
    using (ExcelPackage package = new ExcelPackage(file))
    {
     StringBuilder sb = new StringBuilder();
     ExcelWorksheet worksheet = package.Workbook.Worksheets[1];
     int rowCount = worksheet.Dimension.Rows;
     int ColCount = worksheet.Dimension.Columns;
     bool bHeaderRow = true;
     for (int row = 1; row <= rowCount; row++)
     {
      for (int col = 1; col <= ColCount; col++)
      {
       if (bHeaderRow)
       {
        sb.Append(worksheet.Cells[row, col].Value.ToString() + "\t");
       }
       else
       {
        sb.Append(worksheet.Cells[row, col].Value.ToString() + "\t");
       }
      }
      sb.Append(Environment.NewLine);
     }
     return sb.ToString();
    }
   }
   catch (Exception ex)
   {
    return "Some error occured while importing." + ex.Message;
   }
  }

ASP.NET 是什么

ASP.NET 是開(kāi)源,跨平臺(tái),高性能,輕量級(jí)的 Web 應(yīng)用構(gòu)建框架,常用于通過(guò) HTML、CSS、JavaScript 以及服務(wù)器腳本來(lái)構(gòu)建網(wǎng)頁(yè)和網(wǎng)站。

上述就是小編為大家分享的如何在ASP.NET中使用EPPlus導(dǎo)入導(dǎo)出Excel文件了,如果剛好有類(lèi)似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI