.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+)的包,这里记录一下使用方法. 大凡厉害的技术的文档咋一看都想字 ...
随机推荐
- [转帖]JMeter InfluxDB v2.0 listener plugin
https://github.com/mderevyankoaqa/jmeter-influxdb2-listener-plugin Support my Ukrainian Family ️ Lik ...
- kafka学习之五_多个磁盘的性能验证
kafka学习之五_多个磁盘的性能验证 背景 周末在家学习kafka 上午验证了grafana+kafka_exporter的监控 下午想着验证一把性能相关. kafka学习之三里面,有成套的脚本. ...
- [转帖] 常见的Socket网络异常场景分析
https://www.cnblogs.com/codelogs/p/16001770.html 原创:打码日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处. 简介# 在目前微服务的 ...
- [转帖]配置logback上报日志到Skywalking
https://zhuanlan.zhihu.com/p/506119895 配置logback上报日志到Skywalking 配置logback上报日志到skywalking需要引入toolkit依 ...
- Oracle DBCA 静默删除以及建库的脚本
No.1 背景 公司最近有一个测试环境需要重新备份恢复 但是里面有6个数据库实例 400多G的数据文件. 一般情况下 需要drop user xxx cascade ; 然后执行 drop table ...
- elementui出现展开后子菜单宽度多出1px问题
添加 就可以解决了 .el-menu { border-right-width: 0; } <template> <div class="compen-left-men&q ...
- 【windows Server 2019系列】 构建IIS服务器
个人名片: 对人间的热爱与歌颂,可抵岁月冗长 Github:念舒_C.ying CSDN主页️:念舒_C.ying 个人博客 :念舒_C.ying Web服务器也称为WWW(World Wide W ...
- 领域知识图谱-中式菜谱知识图谱:实现知识图谱可视化和知识库智能问答系统(KBQA)
领域知识图谱-中式菜谱知识图谱:实现知识图谱可视化和知识库智能问答系统(KBQA) A knowledge graph for Chinese cookbook(中式菜谱知识图谱),可以实现知识图谱可 ...
- 快递单信息抽取【二】基于ERNIE1.0至ErnieGram + CRF预训练模型
相关文章: 1.快递单中抽取关键信息[一]----基于BiGRU+CR+预训练的词向量优化 2.快递单信息抽取[二]基于ERNIE1.0至ErnieGram + CRF预训练模型 3.快递单信息抽取[ ...
- XXE注入详解
XML介绍 XML全称可扩展标记语言(EXtensible Markup Language),XML跟HTML格式类似,但是作用不同,XML侧重于数据传输,HTML注重于标记语言,也就是说XML其实是 ...