.Net Code Excel 文件导入
第一步 下载NuGet NPOI包

/// <summary>
/// 将excel文教导入到订单表
/// </summary>
/// <param name="file">excel文件</param>
/// <returns>: -1 ;返回导入文件格式不正确</returns>
[HttpPost]
public IActionResult UpdloadOrder(IFormFile file)
{
try
{
//一、验证文件格式(.xlsx/ .xls)
string exeFile = Path.GetExtension(file.FileName); //获取文件名后缀
if (exeFile != ".xlsx" && exeFile != ".xls")
{
return Ok(-1);
}
//二、将excel订单信息转为List<订单>
//(1)将excel文件转为工作(文件->内存流->工作薄)
IWorkbook wb = null; //工作薄
using (MemoryStream ms = new MemoryStream())
{
file.CopyTo(ms); //文件·-> 内存流
ms.Position = 0;
//xls是2003版Office Microsoft Office Excel 工作表的格式
//xlsx是2007版Office Microsoft Office Excel 工作表的格式
if (exeFile == ".xlsx")
{
wb = new XSSFWorkbook(ms);
}
else
{
wb = new HSSFWorkbook(ms);
}
}
//(2)获取工作薄的第一页
ISheet sheet = wb.GetSheetAt(0);
//(3) 第一页的数据(行 单元格)
int rowNum = sheet.LastRowNum; //最后一行的行号 行号是从1开始0
//(4)创建表的集合实例
List<OrderInfo> orderInfos = new List<OrderInfo>();
//(5)循环 数据 将每条数据添加到List<订单>
for (int i = 1; i <= rowNum; i++)
{
OrderInfo curOrder = new OrderInfo(); //实例化表 根据自己要导入的表
IRow curRow = sheet.GetRow(i); //当前行
curOrder.ONumber = YitIdHelper.NextId().ToString(); //订单编号 雪花编号
curOrder.OName = curRow.GetCell(0).StringCellValue; //字符串
curOrder.OPhone = curRow.GetCell(1).StringCellValue;
curOrder.Address = curRow.GetCell(2).StringCellValue;
curOrder.Freight = (decimal)curRow.GetCell(3).NumericCellValue;//double数字
curOrder.OrderForm = curRow.GetCell(4).NumericCellValue == 1; //布尔类型
curOrder.TotalCount = (int)curRow.GetCell(5).NumericCellValue; //int 类型
curOrder.TotalMoney = (decimal)curRow.GetCell(6).NumericCellValue; //double数字
curOrder.PayType = (PayType)curRow.GetCell(7).NumericCellValue; //枚举
curOrder.OrderStatus = (OrderStatus)curRow.GetCell(8).NumericCellValue;//枚举
orderInfos.Add(curOrder); //将当前实例对象添加到集合
}
//三、将List<订单>写到数据表中
//后台订单添加集合的方法
int res = bll.ListToOrder(orderInfos);
return Ok(res);
}
catch (Exception exp)
{
//写入日志
logger.LogError("订单表Excel导入错误" + exp.Message);
throw;
}
}
.Net Code Excel 文件导入的更多相关文章
- (转)如何将 Excel 文件导入到 Navicat for MySQL 数据库
场景:工作中需要统计一段时间的加班时长,人工统计太过麻烦,就想到使用程序实现来统计 1 如何将 Excel 文件导入到 Navicat for MySQL 数据库 Navicat for MySQL ...
- NodeJs之EXCEL文件导入导出MongoDB数据库数据
NodeJs之EXCEL文件导入导出MongoDB数据库数据 一,介绍与需求 1.1,介绍 (1),node-xlsx : 基于Node.js解析excel文件数据及生成excel文件. (2),ex ...
- MVC3学习:将excel文件导入到sql server数据库
思路: 1.将excel文件导入到服务器中. 2.读取excel文件,转换成dataset. 3.循环将dataset数据插入到数据库中. 本例子使用的表格为一个友情链接表F_Link(LinkId, ...
- excel文件导入mysql
在数据处理的过程中,常常要把windows下的excel文件导入linux下的mysql.这其中会出现一些问题. 1.首先,要在mysql中建表.命令最好存在记事本中,可以随时修改,随时执行 crea ...
- Excel导入导出工具(简单、好用且轻量级的海量Excel文件导入导出解决方案.)
Excel导入导出工具(简单.好用且轻量级的海量Excel文件导入导出解决方案.) 置顶 2019-09-07 16:47:10 $9420 阅读数 261更多 分类专栏: java 版权声明:本 ...
- 十万级百万级数据量的Excel文件导入并写入数据库
一.需求分析 最近接到一个需求,导入十万级,甚至可能百万数据量的记录了车辆黑名单的Excel文件,借此机会分析下编码过程; 首先将这个需求拆解,发现有三个比较复杂的问题: 问题一:Excel文件导入后 ...
- C# excel文件导入导出
欢迎关注微信公众号 C#编程大全 这里有更多入门级实例帮你快速成长 在C#交流群里,看到很多小伙伴在excel数据导入导出到C#界面上存在疑惑,所以今天专门做了这个主题,希望大家有所收获! 环境:wi ...
- PHP Excel文件导入数据到数据库
1.php部分(本例thinkphp5.1): 下载PHPExcel了扩展http://phpexcel.codeplex.com/ <?phpnamespace app\admin\contr ...
- php Excel文件导入 Spreadsheet_Excel_Reader
刚刚开通博客,希望能够通过博客的形式记录自己的学习与成长,同时也希望能够和路上的同僚们多交流,共同进步 小白 -> 大神 go! go! go!! 先总结一下前几天写的Excel导入吧,希 ...
- Excel文件导入导出(基于Nodejs、exceljs)
Excel导入.导出是大多数项目的管理后台必备功能.几年来使用过多个该功能的实现包,最近一次开发该功能,突然发现一个人气极高(3000+)的包,这里记录一下使用方法. 大凡厉害的技术的文档咋一看都想字 ...
随机推荐
- [转帖]harbor 更改网段(docker-compose)
https://blog.csdn.net/Darkernote/article/details/119390862 问题:harbor 安装后网段冲突 docker-compose 一般安装会创建一 ...
- [转帖]VMware Workstation PRO 17.0.2正式版+激活密钥
https://www.isharepc.com/36181.html VMware Workstation PRO 17是一个简化的桌面虚拟化应用程序. 它在同一台计算机上运行一个或多个操作系统而无 ...
- [转帖]Megacli常用命令汇总
MegaCli 是一款管理维护硬件 RAID 软件,可以通过它来了解当前 raid 卡的所有信息,包括 raid 卡的型号,raid 的阵列类型,raid 上各磁盘状态,等 .通常,我们对硬盘当前的状 ...
- [转帖]一问带你掌握通过storcli做RAID
因为系统不支持直接做raid,所以需要使用storcli这个工具来操作.首先把工具上传到服务器任意目录,并使用命令chmod +x storcli64修改文件权限为可执行. 另外可通过命令ln -s ...
- 截止2021年linux发行版
- vue3中mixins的使用
vue3-mixins 在开发的过程中我们会遇见相同或者相似的逻辑代码. 可以通过vue的 mixin 功能抽离公共的业务逻辑, 然后通过impor再组件中引入.通过mixins注册进来. 这样我们就 ...
- 百度指数 Cipher-Text、百度翻译 Acs-Token 逆向分析
K 哥之前写过一篇关于百度翻译逆向的文章,也在 bilibili 上出过相应的视频,最近在 K 哥爬虫交流群中有群友提出,百度翻译新增了一个请求头参数 Acs-Token,如果不携带该参数,直接按照以 ...
- c++全局变量extern
extern extern 是 C++ 中的一个关键字,用于声明一个变量或函数是在其他文件中定义的.它的作用是告诉编译器在链接时在其他文件中寻找该变量或函数的定义. 在 C++ 中,如果一个变量或函数 ...
- Windows10磁盘占用100%和内存占用高
前言 公司配备了两台电脑,两台电脑都是安装的win10系统,一台是磁盘占用高,另一台是内存可用低. 具体情况如下: 一台外网机 8g内存,安装win10 专业版,开机一天后经常出现内存不够用,但其实都 ...
- 从零开始配置vim(21)——会话管理
很多代码编辑器都有这么一个功能,重新进入编辑器之后能恢复上次打开的所有文件,窗口布局,有的甚至是上次设置的一些配置.那么vim是否也可以实现这样的功能呢?答案是肯定的.使用vim自带的会话管理和 vi ...