问题描述:这两天需求是导出患者信息,本来是想从前端调库获取dom元素表格来导出,奈何之前前端的数据是分页加载的,数据量过大就无法完整导出,最后还是把目标放在后端,调接口来导出excel。看了看之前同事写的导出方法,用的是ExcelPackage,网上找了找资料整合了一下。

EPPlus介绍

1、可以保存为Stream

public ExcelPackage(Stream newStream);

2、可以根据模板生成Excel

public ExcelPackage(FileInfo template, bool useStream);

3、可以直接生成新Excel

public ExcelPackage(FileInfo newFile);

使用例子:

ExcelPackage的使用

1、创建Excel

首先引入EPPlus的DLL文件,

创建Excel,所有代码均放在这个using语句里面,在using语句里面我们可以创建多个worksheet, ExcelPackage后面可以传入路径参数

using (ExcelPackage package=new ExcelPackage(new FileInfo(@"d:\test.xlsx"))){ }

2、创建工作表worksheet

using (ExcelPackage package=new ExcelPackage(new FileInfo(@"d:\test.xlsx")))
{ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("test");//创建worksheet
}

3、保存Excel

using (ExcelPackage package = new ExcelPackage(new FileInfo(@"d:\test.xlsx"))){ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("test");//创建worksheetpackage.Save();//保存excel}

4、添加数据

Epplus中给单元格赋值非常简单,两种方法:( ps:Epplus的所有行列数都是以1开始的 )

worksheet.Cells[1, 1].Value = "名称";//直接指定行列数进行赋值
worksheet.Cells["A1"].Value = "名称";//直接指定单元格进行赋值

完整的创建一个Excel的例子代码

FileInfo newFile = new FileInfo(@"d:\test.xlsx");if (newFile.Exists){newFile.Delete();newFile = new FileInfo(@"d:\test.xlsx");}using (ExcelPackage package = new ExcelPackage(newFile)){ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("test");worksheet.Cells[1, 1].Value = "名称";worksheet.Cells[1, 2].Value = "价格";worksheet.Cells[1, 3].Value = "销量";worksheet.Cells[2, 1].Value = "大米";worksheet.Cells[2, 2].Value = 56;worksheet.Cells[2, 3].Value = 100;worksheet.Cells[3, 1].Value = "玉米";worksheet.Cells[3, 2].Value = 45;worksheet.Cells[3, 3].Value = 150;worksheet.Cells[4, 1].Value = "小米";worksheet.Cells[4, 2].Value = 38;worksheet.Cells[4, 3].Value = 130;worksheet.Cells[5, 1].Value = "糯米";worksheet.Cells[5, 2].Value = 22;worksheet.Cells[5, 3].Value = 200;package.Save();}

获取文件夹的物理路径 HttpContext.Current.Server.MapPath("/文件夹名");

组合完整Excel路径(也可以用字符串拼接)Path.Combine(Template,"数据导出的表格.xlsx");

  其他:  String.Replace   替换

      File.Copy   复制

ABP学习笔记:使用EPPlus以表格导出数据相关推荐

  1. Abp学习笔记---轻松搞懂模块

    做.net开发的朋友或多或少都听说过这个框架,自己在差不多一年前也才开始听说,但是!!!之前也没太当回事,一来是工作项目上用不着,二来以为到时候需要用的时候再拿来用就好了. 现在看来却是大错特错!近段 ...

  2. 【Springboot学习笔记】SpringBoot+Mybatis+Thymeleaf+Layui数据表单从零开始实现按条件模糊分页查询的方法

    [Springboot学习笔记]SpringBoot+Mybatis+Thymeleaf+Layui数据表单从零开始实现按条件模糊分页查询的方法 目录 1.搭建环境 1.1直接从网上下载SpringB ...

  3. 《R数据科学》学习笔记|Note8:使用dplyr处理关系数据

    使用dplyr处理关系数据 往期文章 <R数据科学>学习笔记|Note1:绪论 <R数据科学>学习笔记|Note2:使用ggplot2进行数据可视化(上) <R数据科学& ...

  4. Kafka学习笔记(3)----Kafka的数据复制(Replica)与Failover

    1. CAP理论 1.1 Cosistency(一致性) 通过某个节点的写操作结果对后面通过其他节点的读操作可见. 如果更新数据后,并发访问的情况下可立即感知该更新,称为强一致性 如果允许之后部分或全 ...

  5. Kinect开发学习笔记之(七)骨骼数据的提取

    Kinect开发学习笔记之(七)骨骼数据的提取 zouxy09@qq.com http://blog.csdn.net/zouxy09 我的Kinect开发平台是: Win7x86 + VS2010 ...

  6. at24c16如何划分出多个读写区_AVR学习笔记九、基于AT24C16的数据存储实验

    Ema{@AVR 学习笔记九.基于 AT24C16 的数据存储实验 ------- 基于 LT_Mini_M16 9.1 用 I/O 口模拟 I2C 总线实现 AT24C16 的读写 9.1.1 .实 ...

  7. Qt 表格导出数据为 excel html csv

    Qt 表格导出数据为 excel html csv 示例 使用WPS导出出错问题 参考: 从QTableView中导出数据到excel(一) qt QTableWidget&&QTab ...

  8. Polyworks脚本开发学习笔记(四)-利用FILE IMPORT进行数据导入及对齐

    Polyworks脚本开发学习笔记(四)-利用FILE IMPORT进行数据导入及对齐 导入参考及数据 FILE IMPORT_REFERENCE导入参考的CAD文件如igs格式 括号内参数分别为(导 ...

  9. C语言学习笔记-----scanf【通过键盘将数据输入到变量中】(两种用法)

    C语言学习笔记-----scanf[通过键盘将数据输入到变量中](两种用法) 用法一:scanf("输入控制符",输入参数): 功能: 将从键盘输入的字符转化为输入控制符所规定格式 ...

最新文章

  1. 深度学习中的注意力机制(三)
  2. git生成SSH-Key
  3. python去除特殊字符_python去除BOM头\ufeff等特殊字符
  4. 前端学习(3075):vue+element今日头条管理-反馈
  5. org/springframework/util/backoff/BackOff
  6. Project中三种任务类型解释
  7. Python 中的新式类和经典类的区别?
  8. 2018 5大技术趋势
  9. Akash Network主网现已部署Sushiswap应用
  10. IBM MQ的常用命令
  11. 搭建前端监控系统(四)接口请求异常监控篇
  12. mysql 递归查询所有父级
  13. 架构方案(9) 如何构建一套高可用的 APP 消息推送平台
  14. kaminari分页插件的使用
  15. 【区块链108将】把小白和老炮儿聚合到一起打造完整的区块链社区生态
  16. 组合计数——车的放置(逆元)+数三角形+序列统计(lucas定理)
  17. 微信wifi路由器怎么连接服务器,介绍下微信WIFI路由器怎么设置的方法
  18. OneDrive 正在登录
  19. 剪切板上的隐私泄露,真的很严重
  20. 技术支撑团队技术支持工程师的技能要求

热门文章

  1. Linux+shell学习记录和思维导图
  2. 国科大算法概论课后作业
  3. 会声会影怎么把视频和音频合起来 会声会影下面的轨道不见了
  4. mysql 语句详解_MySQL 语句详解
  5. 有兴致地研究这个赤条条躺在地上
  6. android 无法绑定 1024 以下端口
  7. 时间戳转成日期格式(全)
  8. 超详细分析如何用python处理ECGPPG数据
  9. 解决phpStudy MySQL启动失败
  10. el-upload 上传图片、编辑时图片回显以及后续提交问题