视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
ASP.NET Core中使用EPPlus导入出Excel文件的完整步骤
2020-11-27 22:34:32 责编:小采
文档


或者您可以通过UI界面来安装它.

 一切就绪,现在创建一个控制器,命名为: ImportExportController ,添加后,让我们编写导出方法。

为了方便演示,我在wwwroot文件夹中创建了一个excel文件,所以我们就需要去获取我们的项目的绝对路径。

 public class ImportExportController : ControllerBase
 {
 private readonly IHostingEnvironment _hostingEnvironment;

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

 ExcelPackage 在 OfficeOpenXml 命名空间中可用的类将用于读写xlsx。定义名为“Export”的新Web api操作方法,该方法返回生成的xlsx文件的URL。所以这是将数据导出到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;
 }

就这样。现在,当您运行此应用程序并调用export方法时。完成后,访问wwwroot您的应用程序的文件夹。您应该在系统上看到“demo.xlsx”。当你打开它时,你应该看到以下内容。

您还可以对标题进行加粗,这些并不是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);
 }

 

 关于导入,其实真实的情况还是比较复杂的,我们这里就不进行验证了,对于演示,我们只是读取刚刚保存的文件。 ImportAPI 将读取文件并以格式化的字符串返回文件内容。以下是导入API的完整代码,用于读取xlsx,创建文件内容的格式化字符串并返回相同的内容。

[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;
 }
 }

总结

下载本文
显示全文
专题