.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内存配置(win&mac&linux)
目录 一.背景: 二.win环境下修改jmeter内存 三.mac&linux环境下修改jmeter内存 四.验证内存是否修改成功 一.背景: 在进行大数据.高并发压测的过程性,有时会遇上JM ...
- [转帖]如何理解 iowait
Linux中,%iowait 过高可能是个问题,严重的时候,它能使服务停止, 但问题是,多高才算高? 什么时候应该担心呢? 本文将讨论 iowait 的含义.相关的统计数据.原理以及 iowait的瓶 ...
- [转帖]shell脚本变量详解(自定义变量、环境变量、变量赋值、变量运算、变量内容替换)
https://developer.aliyun.com/article/885658 简介: shell变量 shell变量是指用一个特定的字符串去表示不固定的内容 1.变量的类型 1.1自定义变量 ...
- 从零开始配置 vim(4)——键盘映射的一些技巧
通过前面的学习,我们已经知道了如何进行键盘映射,并且也知道了在任何场合应该使用非递归版本的映射.这篇再介绍一些使用关于快捷键映射的内容作为收尾 快速编辑 vimrc 文件 通过前面掌握的知识,相信各位 ...
- 使用protobuf生成代码import包找不到
protobuf使用import导入包找不到 前言 解决方案 protobuf使用import导入包找不到 前言 使用protobuf生成go代码,发现protobuf中一个import引用找不到 p ...
- Python 解析JSON实现主机管理
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它以易于阅读和编写的文本形式表示数据.JSON 是一种独立于编程语言的数据格式,因此在不同的编程语言中都有对 ...
- C/C++ 获取主机网卡MAC地址
MAC地址(Media Access Control address),又称为物理地址或硬件地址,是网络适配器(网卡)在制造时被分配的全球唯一的48位地址.这个地址是数据链路层(OSI模型的第二层)的 ...
- 21.13 Python 实现端口流量转发
端口流量转发(Port Forwarding)是一种网络通信技术,用于将特定的网络流量从一个端口或网络地址转发到另一个端口或地址.它在网络中扮演着一个非常重要的角色,在Python语言中实现端口转发非 ...
- MySQL 之基础命令(精简笔记)
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RD ...
- C# 中类与继承等概念
C#是一种现代的.面向对象的编程语言,其中类和继承是面向对象编程语言中非常重要的概念,类和继承是C#中面向对象编程的基本概念,可以用于创建复杂的应用程序和模块,而多态和接口可以使程序更加灵活和可扩展. ...