.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+)的包,这里记录一下使用方法. 大凡厉害的技术的文档咋一看都想字 ...
随机推荐
- [转帖]br备份时排除某个库
https://tidb.net/blog/2a88149e?utm_source=tidb-community&utm_medium=referral&utm_campaign=re ...
- [转帖]PD Control 使用说明
https://docs.pingcap.com/zh/tidb/stable/pd-control PD Control 是 PD 的命令行工具,用于获取集群状态信息和调整集群. 安装方式 注意 ...
- [转帖]TiDB BR 备份至 MinIO S3 实战
https://tidb.net/blog/3a31d41d#3.%E9%83%A8%E7%BD%B2%20MinIO%20S3%20%E5%8F%8A%E5%A4%87%E4%BB%BD%E6%81 ...
- Jmeter学习之六_进行https证书处理的工作
Jmeter 进行https证书处理的工作 背景 继续学习中,想着能够抓取一下https相关的信息 所以计划些一下处理过程 但是感觉自己这一块比较薄弱. 场景设计这一块应该是专业人去搞, 我这边先只是 ...
- [转帖]解读内核 sysctl 配置中 panic、oops 相关项目
写在前面 本篇文章的内容主要来自内核源码树 Documentation/admin-guide/sysctl/kernel.rst文件. softlockup vs hardlockup softlo ...
- 除了Adobe之外,还有什么方法可以将Excel转为PDF?
前言 Java是一种广泛使用的编程语言,它在企业级应用开发中发挥着重要作用.而在实际的开发过程中,我们常常需要处理各种数据格式转换的需求.今天小编为大家介绍下如何使用葡萄城公司的的Java API 组 ...
- pytest-xdist分布式
使用pytest框架运行每条case的时候,都是上一条运行结束才会运行下一条,要是有成千上百条case 且每条运行2s那就是2*总条数,会浪费大量的时间和人力.为了节约时间和人力成本,pytest提供 ...
- js中计算一个时间点加上一个时间段后的时间
function aa(a,b){ console.log(111,a,b) var nd = new Date(Date.parse(a.replace(/-/g, "/"))) ...
- Python 潮流周刊第 29 期(摘要)
本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章.教程.开源项目.软件工具.播客和视频.热门话题等内容.愿景:帮助所有读者精进 Python 技术,并增长职 ...
- 【1】Pycharm 主题设置推荐Material Theme UI以及编辑环境配置(字体大小和颜色)
相关文章: [1]Pycharm 主题设置推荐Material Theme UI以及编辑环境配置(字体大小和颜色) [2]Pycharm插件推荐,超级实用!每个小trick都可以快速提升变成效率! [ ...