操作Excel是一个比较常见的业务场景,本篇将使用EPPlus简单演示一个导入导出的示例。

EPPlus开源地址:https://github.com/EPPlusSoftware/EPPlus

在项目中添加EPPlus组件

Install-Package EPPlus

导入

先准备一个Excel文件,将其内容读取出来,并序列化成JSON字符串进行返回。

[HttpPost]
public List<ExcelDemoDto> Import([FromForm] ImportExcelInput input)
{var list = new List<ExcelDemoDto>();using (var package = new ExcelPackage(input.ExcelFile.OpenReadStream())){// 获取到第一个Sheet,也可以通过 Worksheets["name"] 获取指定的工作表var sheet = package.Workbook.Worksheets.First();#region 获取开始和结束行列的个数,根据个数可以做各种校验工作// +1 是因为第一行往往我们获取到的都是Excel的标题int startRowNumber = sheet.Dimension.Start.Row + 1;int endRowNumber = sheet.Dimension.End.Row;int startColumn = sheet.Dimension.Start.Column;int endColumn = sheet.Dimension.End.Column;#endregion// 循环获取整个Excel数据表数据for (int currentRow = startRowNumber; currentRow <= endRowNumber; currentRow++){list.Add(new ExcelDemoDto{AAA = sheet.Cells[currentRow, 1].Text,BBB = sheet.Cells[currentRow, 2].Text,CCC = sheet.Cells[currentRow, 3].Text,DDD = sheet.Cells[currentRow, 4].Text,EEE = sheet.Cells[currentRow, 5].Text,FFF = sheet.Cells[currentRow, 6].Text});}}return list;
}public class ExcelDemoDto
{public string AAA { get; set; }public string BBB { get; set; }public string CCC { get; set; }public string DDD { get; set; }public string EEE { get; set; }public string FFF { get; set; }
}public class ImportExcelInput
{public IFormFile ExcelFile { get; set; }
}

导出

[HttpGet]
public async Task<string> Export()
{using var package = new ExcelPackage();var worksheet = package.Workbook.Worksheets.Add("sheet1");var headers = new string[] { "AAA", "BBB", "CCC", "DDD", "EEE", "FFF" };for (int i = 0; i < headers.Length; i++){worksheet.Cells[1, i + 1].Value = headers[i];worksheet.Cells[1, i + 1].Style.Font.Bold = true;}// 模拟数据var list = new List<ExcelDemoDto>();for (int i = 1; i <= 10; i++){list.Add(new ExcelDemoDto{AAA = $"A{i}",BBB = $"B{i}",CCC = $"C{i}",DDD = $"D{i}",EEE = $"E{i}",FFF = $"F{i}"});}// 支持各种直接获取数据的方法// worksheet.Cells.Load*...int row = 2;foreach (var item in list){worksheet.Cells[row, 1].Value = item.AAA;worksheet.Cells[row, 2].Value = item.BBB;worksheet.Cells[row, 3].Value = item.CCC;worksheet.Cells[row, 4].Value = item.DDD;worksheet.Cells[row, 5].Value = item.EEE;worksheet.Cells[row, 6].Value = item.FFF;row++;}// 通常做法是,将excel上传至对象存储,获取到下载链接,这里将其输出到项目根目录。var path = Path.Combine(Directory.GetCurrentDirectory(), $"excel.xlsx");await package.GetAsByteArray().DownloadAsync(path);return path;
}

.NET Core 中导入导出Excel相关推荐

  1. Java中导入/导出excel,导出pdf报表信息

    1.项目中经常需要用到报表生成,信息导入数据库的功能.主要有以下几种. 2.其中比较简单的是 外部数据无需处理直接 导入数据库中,这种比较简单.直接利用Navicat数据库工具 导入外部.示例如下 1 ...

  2. vue中导入导出Excel

    以下仅个人做笔记使用: 简单版导出Excel 1.安装依赖: cnpm install --save xlsx file-saver cnpm i script-loader -S 2.下载两个js文 ...

  3. ASP.NET Core 导入导出Excel xlsx 文件

    ASP.NET Core 使用EPPlus.Core导入导出Excel xlsx 文件,EPPlus.Core支持Excel 2007/2010 xlsx文件导入导出,可以运行在Windows, Li ...

  4. java io导出excel表格_Java IO 导入导出Excel表格

    1.将excel导入到内存 1. 调用工作簿Workbook的静态方法getWorkbook(),获得工作簿Workbook对象 InputStream in = new FileInputStrea ...

  5. csv和excel php 解析_PHP 高效导入导出Excel(csv)方法之fgetcsv()和fputcsv()函数

    CSV,是Comma Separated Value(逗号分隔值)的英文缩写,通常都是纯文本文件. 一.CSV数据导入函数fgetcsv() fgetcsv() 函数从文件指针中读入一行并解析 CSV ...

  6. EOS中如何实现导入导出excel文件

    阅读原文 导入导出excel文件 场景描述 将数据库表中的数据按照定义的EXCEL模板进行导出,下载到本地: 将EXCEL中的数据导入数据库相应的表中. 场景目标 通过本场景,解决EXCEL的导入导出 ...

  7. epplus保存为流_ASP.NET Core使用EPPlus导入导出Excel

    开发过程中,经常会遇到导入导出数据的需求,本篇博客介绍在.NET Core中如何使用EPPlus组件导入导出Excel EPPlus: EPPlus是使用Open Office XML格式(xlsx) ...

  8. 如何在 MySQL / MariaDB 中导入导出数据,导入导出数据库文件、Excel、CSV

    文章目录 本教程将详细讲解 1. MySQL / MariaDB 数据库数据「导出」 2. MySQL / MariaDB 数据库数据「导入」 3. 使用「卡拉云」一键导入导出 MySQL / Mar ...

  9. C#窗体将DGV控件中数据导入导出Excel表

    目录 界面图: 效果视频: 一:将DGV数据导出到Excel表中 二:将Excel表数据导入到DGV中 三:界面全部代码 界面图: 效果视频: DGV数据导入导出Excel 一:将DGV数据导出到Ex ...

最新文章

  1. echart css样式弄了几个月了,样式一直都没有好好解决,好激动
  2. 【项目管理】项目经理 总监 总经理不同优秀特质
  3. SqlServer中从字符串中获取项目指标方法charindex月substring结合
  4. Laravel_post访问【419】问题解决方法
  5. java 加密解密编程,java 加密解密容易实现
  6. Flutter Gzip 编码与解码 Dart Gzip 工具类操作
  7. mysql 显示重叠_一句话实现MySQL库中的重叠分组
  8. POJ 2240 Arbitrage Bellman_ford 判读是否存在正环
  9. 遥感高光谱分类文献阅读:Exploring Hierarchical Convolutional Features for Hyperspectral Image Classification
  10. 耗时两个礼拜,8000字安卓面试长文,重难点整理
  11. ACM解题总结——HihoCoder1199 (微软笔试题)
  12. mysql集群master和salve配置mysql的master和salve详解事件
  13. eclipse git 取远程代码_【JAVA】Eclipse中使用git进行pull远程代码
  14. 做好项目信息管理,是优秀项目经理的必备技能
  15. 安全(Security)设计原则(1)
  16. Cesium动态更改贴图
  17. [Gradle中文教程系列]-跟我学Gradle-5.2:依赖的分类
  18. 戴尔R730升级iDRAC的OS部署
  19. 夜神模拟器安装证书之burp抓包
  20. 续修家谱没意义?专家:9成大家族修谱都会遇到这三个难题!

热门文章

  1. 菜鸟学习MVC实录:弄清项目各类库的作用和用法
  2. c#代码实现GPS数据的有效性校验
  3. Process Explorer 15.2:微软增强型任务管理器
  4. (转)C#网络编程(基本概念和操作) - Part.1
  5. msdn中C#中常用词汇概念(转帖)
  6. 分数相同名次排名规则C语言,如何给数据排名(相同分数相同名次)-excel篇
  7. Silverlight与WCF之间的通信(4)silverlight以net.tcp方式调用console上寄宿的wcf服务
  8. 新款ATM恶意软件Alice 可对抗动态分析 但目前需要物理接触主机
  9. App Store 排名获取。
  10. 重要的ui组件——Behavior