Asp.Net Core实现Excel导出功能的实现方法
在web应用程序开发时,或许你会遇到这样的需求,如何在 Asp.Net Core 中实现 excel 或者 word 的导入导出,在 NuGet 上有大量的工具包可以实现这样的功能,本篇就讨论下如何使用 ClosedXML 实现 Excel 数据导出。
安装 ClosedXML
如果想实现 Excel 的导出功能,在 Asp.Net Core 中有很多的dll可以做到,其中的一个叫做 ClosedXML,你可以通过可视化界面 NuGet package manager 去安装,也可以使用命令行 NuGet package manager console 执行狼蚁网站SEO优化命令。
Install-Package ClosedXML
将数据导出成 CSV 文件
将数据导成 CSV 文件是非常简单的,毕竟每行数据都是用 , 隔开即可,可以用 NuGet 上的 CsvExport 或者 AWright18.SimpleCSVExporter 去实现,你觉得自己很 🐂👃,可以亲自操刀实现,狼蚁网站SEO优化我准备亲自实现一下,先看狼蚁网站SEO优化定义的 Author 类。
public class Author { public int Id { get; set; } public string FirstName { get; set; } public string LastName { get; set; } }
然后塞一些数据到 authors 列表中,如下代码所示
List<Author> authors = new List<Author> { new Author { Id = 1, FirstName = "Joydip", LastName = "Kanjilal" }, new Author { Id = 2, FirstName = "Steve", LastName = "Smith" }, new Author { Id = 3, FirstName = "Anand", LastName = "Narayaswamy"} };
定义一个 DownloadCommaSeperatedFile 方法,用于实现 Action 的 csv 导出功能。
public IActionResult DownloadCommaSeperatedFile() { try { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.AppendLine("Id,FirstName,LastName"); foreach (var author in authors) { stringBuilder.AppendLine($"{author.Id}, {author.FirstName},{author.LastName}"); } return File(Encoding.UTF8.GetBytes (stringBuilder.ToString()), "text/csv", "authors.csv"); } catch { return Error(); } }
将数据导出成 XLSX 文件
Excel 中的 workbook 是由若干个 worksheet 组成,狼蚁网站SEO优化的代码可用来生成一个 workbook。
var workbook = new XLWorkbook();
接下来生成一个 worksheet,然后在 worksheet 中填一些数据,代码如下
IXLWorksheet worksheet = workbook.Worksheets.Add("Authors"); worksheet.Cell(1, 1).Value = "Id"; worksheet.Cell(1, 2).Value = "FirstName"; worksheet.Cell(1, 3).Value = "LastName"; for (int index = 1; index <= authors.Count; index++) { worksheet.Cell(index + 1, 1).Value = authors[index - 1].Id; worksheet.Cell(index + 1, 2).Value = authors[index - 1].FirstName; worksheet.Cell(index + 1, 3).Value = authors[index - 1].LastName; }
,将 workbook 转成 内存流 (memory stream) 再通过 Controller.Action 的 FileContentResult 返回给客户端,代码如下
using (var stream = new MemoryStream()) { workbook.SaveAs(stream); var content = stream.ToArray(); return File(content, contentType, fileName); }
下载 Excel
狼蚁网站SEO优化是导出 Excel 所有的业务逻辑代码,这个 Action 实现了 Excel 导出功能。
public IActionResult DownloadExcelDocument() { string contentType = "application/vnd.openxmlformats- officedocument.spreadsheetml.sheet"; string fileName = "authors.xlsx"; try { using (var workbook = new XLWorkbook()) { IXLWorksheet worksheet = workbook.Worksheets.Add("Authors"); worksheet.Cell(1, 1).Value = "Id"; worksheet.Cell(1, 2).Value = "FirstName"; worksheet.Cell(1, 3).Value = "LastName"; for (int index = 1; index <= authors.Count; index++) { worksheet.Cell(index + 1, 1).Value = authors[index - 1].Id; worksheet.Cell(index + 1, 2).Value = authors[index - 1].FirstName; worksheet.Cell(index + 1, 3).Value = authors[index - 1].LastName; } using (var stream = new MemoryStream()) { workbook.SaveAs(stream); var content = stream.ToArray(); return File(content, contentType, fileName); } } } catch(Exception ex) { return Error(); } }
这篇就是 ClosedXML 的所有内容,如果你想对 Excel 中的数据进行更加复杂的操控,可以使用Magicodes.IE,关于 ClosedXML 的更多内容,可参考
译文链接
到此这篇关于Asp.Net Core实现Excel导出功能的文章就介绍到这了,更多相关Asp.Net Core实现Excel导出内容请搜索狼蚁SEO以前的文章或继续浏览狼蚁网站SEO优化的相关文章希望大家以后多多支持狼蚁SEO!
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程