首页 > 其他分享 >.Net Core使用miniExcel实现导入导出

.Net Core使用miniExcel实现导入导出

时间:2023-08-23 21:55:34浏览次数:38  
标签:Core MemoryStream miniExcel 导出 list memory var new Net

.Net Core使用miniExcel实现导入导出

首先,引入NuGet包:MiniExcel第三方插件

IMG_256

一、导入

       public int UpLoadExecl()
      {
           //获取文件数据,[0]代表只能上传一个文件,如果要传递多个文件注意:文件名不能重复
           var formInfor = HttpContext.Request.Form.Files[0];

           //using的作用是生命周期结束后释放内存
           //在内存中开辟一道空间
          using MemoryStream memory = new MemoryStream();

           //将文件数据复制到内存空间
           formInfor.CopyTo(memory);

           //从内存空间中找出UserModel实体信息
           var list = memory.Query<UserModel>();

           //添加至数据库
           db.UserModel.AddRange(list);

           //并保存返回给前端受影响行数
           return Ok(db.SaveChanges());
      }

二、导出

 public IActionResult SaveAsExecl()
      {
           //从数据库取出要导出的数据
           var list = db.UserModel.ToList();

           //在内存中开辟一道空间
           var memory = new MemoryStream();

           //将数据保存到memory(内存)空间
           memory.SaveAs(list);

           //将memory的读取指针重置到流的开头。这一步是为了确保在返回memory之前,读取操作可以从流的开头开始。
           memory.Seek(0, SeekOrigin.Begin);

           //创建一个FileStreamResult对象,用于将memory作为文件流返回。指定返回的文件类型为Excel文件,文件类型:(application/vnd.openxmlformats-officedocument.spreadsheetml.sheet),并设置文件的下载名称为学生管理.xlsx。
           return new FileStreamResult(memory, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") { FileDownloadName = "学生管理.xlsx" };
      }

三、下载模板

和导出基本一致,就是将List集和中的数据清空然后导出模板,使用Clear()方法,具体实现:

           var list=db.UserModel.ToList();
           
           //清空数据
           list.Clear();

           var memory = new MemoryStream();

           memory.SaveAs(list);

           memory.Seek(0, SeekOrigin.Begin);

           return new FileStreamResult(memory, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") { FileDownloadName = "学生管理.xlsx" };

标签:Core,MemoryStream,miniExcel,导出,list,memory,var,new,Net
From: https://www.cnblogs.com/Iflifecouldctrlz/p/17652865.html

相关文章

  • c# .NET 高级编程 高并发必备技巧(二) - 分布式锁
    上一篇文章简单的介绍了单机的情况下如何进行加锁,防止高并发带来的问题。然而现实中,一般会高并发的应用,很少会单机部署。当用户量达到一定的程度,分布式、集群部署是必然的选择。在分布式部署的情况下,之前的单机锁还会有效吗?代码还是之前的代码:privatestaticobjectlck=......
  • 史上最强.NET数据分页方法
    【前言】本文讲述的.NET数据分页方法为【史上最强】,已被多家大型科技公司实战采用& 也被圈内多家知名IT培训机构转载收藏。 【正文】支持.NetCore(2.0及以上)与.NetFramework(4.5及以上)可以部署在Docker,Windows,Linux,Mac。数据分页,几乎是任何应用系统的必备功......
  • kubernetes-1.26安装
    一、环境准备k8s集群角色IP主机名安装组件配置控制节点192.168.10.10masterapiserver、controller-manager、scheduler、etcd、kube-proxy、docker、calico、contained2核4G工作节点192.168.10.11node1kubelet-1.26、kube-proxy、docker、calico、coredns、c......
  • 一个.net加密壳的挖矿木马分析
     样本md5:02B886B7B245F7CA52172F299D279A0F   问题:挖矿木马有时候可以启动,有时候起不来?WHY?逆向看看,结论:foreach(Processprocess3inProcess.GetProcesses()){if(process3.ProcessName.ToLower()=="taskmgr"||p......
  • 揭秘深层神经网络:探索残差网络(ResNet)架构
    在现代深度学习中,深层神经网络在解决复杂任务方面表现出色。然而,随着网络层数增加,深层网络往往面临梯度消失和退化问题。残差网络(ResNet)作为一种创新的架构,成功地解决了这些问题,在多个计算机视觉任务上取得了显著的成果。本文将深入探讨ResNet的原理、结构以及其在深度学习中的重要......
  • 开源的 .NET 数据库迁移框架FluentMigrator
    简介FluentMigrator是一个开源的数据库迁移框架,可以帮助用户在开发过程中保持数据库的一致性。它提供了一个简洁的FluentAPI,可以让你使用C#写出简洁的迁移脚本。FluentMigrator提供了一系列的API用来创建和管理数据库迁移,并且支持多种不同的数据库系统,包括MySQL、Postg......
  • Asp.net mvc 笔记
    捕捉处理全局异常自定义一个Attribute继承默认的HandleErrorAttributenamespaceEmpowerApiService.Filter{publicclassCustomerErrorAttribute:HandleErrorAttribute{privatestaticNLog.Loggerlogger=NLog.LogManager.GetCurrentClassLogger();......
  • 使用.NET Jieba.NET 的 PosSegmenter 实现中文分词匹配
    ​目录引言1.什么是中文分词2.Jieba.NET简介3.PosSegmenter介绍4.实现中文分词匹配4.1安装Jieba.NET库4.2创建PosSegmenter实例4.3分词和词性标注4.4中文分词匹配5.总结 引言        在自然语言处理领域,中文分词是一个重要且基础的任务。中文文......
  • 【HMS Core】在线语种检测返回结果错误
    ​ 【关键字】在线语种检测、机器学习 【问题描述】集成在线语种检测服务,检测蒙古文之后,返回结果为中文​ 【问题分析】1、在线语种服务目前不支持蒙古文,具体可见官网语种支持列表:【MLKit】语种检测支持的语言列表​2、目前该服务是在支持语言进行置信度识别的,没有......
  • NET 封装Task库实现几种生产流程控制
    示例1:串行执行14:55:34.081A14:55:35.085B14:55:36.094C示例2:A执行完BC并行,且C执行完继续执行14:55:58.843A14:55:58.875B14:55:58.875C114:55:58.875C2:100示例3:A执行完BC并行14:56:14.682A14:56:15.689C14:56:15.692B示例4:BC并行全部执行完A14:56:33.054B14:5......