首页 > 其他分享 >.net core使用miniExcel完成简单excel的导入和导出功能

.net core使用miniExcel完成简单excel的导入和导出功能

时间:2023-04-26 19:00:13浏览次数:34  
标签:core memoryStream miniExcel excel list 导入 内存 var

今天学习了miniExcel,并通过它实现了一个简单的上传和导出的功能

导入比较简单:

public IActionResult ImportExcel()
{
var file = HttpContext.Request.Form.Files[0];  //获取上传的文件信息
var stream = new MemoryStream(); //新建内存流
file.CopyTo(stream); //将文件写入内存流
var list = stream.Query<User>();//将内存流中的文件数据转化为IEnumable<User>类型
var res = _userServices.BatchAdd(list);  //然后调用批量添加方法将数据添加到数据库中
return Ok(res);
}

这样就实现了通过miniExcel,将上传的excel文件的数据存到数据库对应的table中

然后导入的时候,一开始一直犯错,后续发现是导入的Excel里有空行的问题。

目前还没有解决这个BUG,只能先把空行删除这样就能正常导入了。

 

导出数据库里的数据到Excel中,具体代码如下:

public IActionResult ExportExcel()
{
//1.查找到导出的数据(需要有数据源)
var list = _userServices.GetUserAll();
//2.将数据源存放到内存里
//MemoryStream在内存中开辟一块空间
var memoryStream = new MemoryStream();
//将list数据原】源存放到内存里
memoryStream.SaveAs(list);
//offset偏移量,0开始
memoryStream.Seek(0, SeekOrigin.Begin);
return new FileStreamResult(memoryStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
{
FileDownloadName = "user.xlsx"
};
}

标签:core,memoryStream,miniExcel,excel,list,导入,内存,var
From: https://www.cnblogs.com/LiuLewis/p/17356615.html

相关文章

  • C# abp中EfCore执行原生sql和事务操作
    ef自带的方法是没有执行原生sql的,必须在仓储实现类中注入dbContextProvider、然后就可以使用FromSqlRaw查询,ExecuteSqlRawAsync执行新增、修改、删除,efcore方法都是自带事务的,有时候我们想在自己的业务逻辑中嵌入事务,就使用CreateExecutionStrategy创建事务操作:publicclassAcc......
  • java excel带图片导入
    日常项目中使用easyExcel但是easyExcel不支持带图片的excel导入,后面通过网络查找,再加上询问技术经理终于解决,大前提是图片在excel中不是嵌入的,需要悬浮才可以读取。代码如下引用jar包为<!--需要2.10版本及以上不然excel缺少工具类--><dependency><groupId>com......
  • 推荐20个.NET/.NET Core 优秀项目框架
    推荐20个.NET/.NETCore优秀项目框架精通电脑科技于 2022-10-0916:58:48 发布2050 收藏 8文章标签: .net .netcore 前端版权前言分享一些.NET开源项目,通过了解和对比更多的项目来选择最适合我们自己学习、工作开发的一套项目。优秀的项目是不应该被埋......
  • excel更改偶数行内容
    1.判断是否为偶数行=IF(MOD(ROW(),2)=0,真,假)2.截取字符串MID(字符串所在单元格,字符串开始位置,字符串结束位置)3.偶数行截取字符串并添加字符串=IF(MOD(ROW(),2)=0,"Hpu"&MID(A1,3,8)&"#")4.提取数字时出现问题,由于我提取的是最右边字符串,改为下边代码=IF(MO......
  • .net core 基础之读取配置文件
    一、通过nuget安装扩展包需要安装如下扩展包Microsoft.Extensions.ConfigurationMicrosoft.Extensions.Configuration.BinderMicrosoft.Extensions.Configuration.Json 二、在启动项目中新建json文件{"Name":"Alan.hsiang","Age":20,"Sex":&q......
  • Python pandas 保存Excel自动调整列宽的方法及示例代码
    方法1.  用pd.ExcelWriter和  worksheet.set_column 需要安装xlsxwriter方法2:使用StyleFrame自动调整fromstyleframeimportStyleFrameimportpandasaspdcolumns=['aaaaaaaaaaa','bbbbbbbbb','ccccccccccc',]df=pd.DataFrame(data={......
  • 关于在linux-centos7下部署 .net core程序绘图(PDF等)丢失中文字体的解决方案
    关于在linux-centos7下部署.netcore程序绘图(PDF等)丢失中文字体的解决方案说明:1:以下操作基于新系统,如果步骤一,二已经安装则不需要额外安装.需要注意的是,在使用(yuminstall包)的时候如果提示包不存在;需要运行步骤(一:5安装epel,企业版Linux额外包)2:以下()内代表......
  • Sitecore XP 10.3(latest) Docker一键部署
    本文演示通过PowerShell+DockerDesktopforWindows一键部署Sitecore10.3(即Sitecore最新版)Docker开发/测试/演示环境。官方参考 SitecoreXP10.3.0DeveloperWorkstationDeploymentWithDocker演示配置为XPSingle(XP0) 环境准备1,windows10+/WindowsServer2019(Windows......
  • 保存到Excel文件中
    OLEObjectole_object,ole_workbooksole_object=CREATEOLEObjectIFole_object.ConnectToNewObject("Excel.Application")<>0THENMessageBox('OLE错误','OLE无法连接!')returnENDIFole_object.workbooks.addole_object.Visible=Tru......
  • Winform使用EFCore的CodeFirst(注入方式)
    1、新建项目使用vs创建一个winform的项目,这里就不演示了。2、拉取nuget包获取配置:Microsoft.Extensions.Configuration.Json注入:Microsoft.Extensions.DependencyInjectionmysqlEF:MySql.EntityFrameworkCore3、创建appsettings.json配置文件在项目......