前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >导入Excel表格

导入Excel表格

作者头像
PHY_68
发布于 2020-09-16 06:31:51
发布于 2020-09-16 06:31:51
2.2K00
代码可运行
举报
文章被收录于专栏:laopan技术分享laopan技术分享
运行总次数:0
代码可运行

导入Excel表格

开发工具与关键技术:MVC

作者:盘洪源

撰写时间:2019年4月21日星期天

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
我的理解就是这个导入Excel表格的作用就是相当于批量导入数据,比如说像新增学生信息这一种的话,你不可能在页面上一条一条的新增,这样多麻烦。这个导入Excel表格就是直接就把你所需要新增的学生信息全部导进数据库,但前提得有Excel表格数据,这个必须要有的,还得有个Excel表格模板,这个模板你可以自己设置好放到项目中,好给用户下载,但这个Excel表格的表头得和页面自定义表的表头相对应,这样才能将数据导入进来。

首先第一个要导入数据肯定得有个模板,所以第一个写的就是这个下载模板的方法。

这个方法怎么写:

首先获取模板的路径(就是模板的相对应的文件夹)

string filePath = Server.MapPath("~/Document/Template/考生信息导入模板.xls");

然后再判断模板是否存在,不存在就返回一个提示,存在就继续往下执行:

获取文件的名称:

string fileName = Path.GetFileName(filePath);

返回文件:

return File(new FileStream(filePath, FileMode.Open), “application/octet-stream”, fileName);

然后直接在视图上调用这个方法就行。

下一个方法就是将导入的Excel表格的数据保存到session中。

首先这思路是怎样的:

(1) 获取选择到的Excel文件

(2) 将文件转换为二进制数据

(3) 二进制数组转换成内存流

(4) 利用NPOI将内存流中的数据读取成Excel

这是一个大概的思路。

在做这些步骤之前还需要做一个移出数据,将session中的ImportExcle移除,避免残留以数据

Session.Remove(“ImportExcel”);

首先判断页面传过来的文件是否为Excel表格,通过获取文件的后缀来判断是否为Excel表格,如果文件后缀为xls(不分大小写)则为Excel表格。

string fileExtension = Path.GetExtension(file.FileName);

if (".xls".Equals(fileExtension) || “.XLS”.Equals(fileExtension)

声明一个二进制数据存放文件

byte[] fileBytes = new byte[file.ContentLength];

将传入的file文件转化为二进制的数组存入fileBytes内

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
file.InputStream.Read(fileBytes, 0,

file.ContentLength);

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
将二进制的数组转化为内存流(运用NPOI)

MemoryStream excelFileStream = new

MemoryStream(fileBytes);

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
将内存流转化为工作簿

NPOI.SS.UserModel.IWorkbook workbook = new NPOI.HSSF.UserModel.HSSFWorkbook(excelFileStream);

判断工作簿中是否有工作表

if (workbook.NumberOfFonts > 0)

然后查询出导入的Excel表格中的字段的

声明对象列表,存放导入的信息

将数据先装到datatable中,然后这里就和导出Excel表格有点相识了

获取标题行、获取表格列数、遍历循坏数据等等。

再运用foreach遍历dataTable中的数据,将数据传入到新创建的student对象中

最后将数据保存到session中,

Session[“ImportExcel”] = listStudentVo;

在此之前还要声明两个变量,记录成功与失败。

接下来就是提取Session中的数据并进行一个分页。

因为一般这样大量导入数据的数据都是很多的,所以需要进行一个分页

分页这个操作很简单,因为之前的那些初始化表格单表查询数据都是需要用到的这个分页的。所以给个截图就算了如下图

分页都是这几个步骤来的,可以说是已经是定好的。

然后接下来就是将导入的数据保存到数据库中,这个也不是很复杂,和以前学的那些保存感觉差不多,就是判断一下数据重复这些,如果部重复就保存数据,这里可能涉及的就是单表的保存或者多表的保存数据。

然后视图那边也要做相对应的操作,上传Excel表格,保存到临时表格上,然后,这个临时表格就是临时初始化在页面上的那个表格,只是方便给用户看到自己所上传的什么数据,这个时候的数据还没有保存到数据库中。

接下来就是保存数据到数据库中,这个操作也可以说是新增数据。引用相对应的方法就行。

这个导入的过程确实很复杂,只要理解思路,按步骤一步一步的来还是可以实现的。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/05/06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
.Net之Nopi Excel数据导出和批量导入功能
  它是一个专门用于读写Microsoft Office二进制和OOXML文件格式的.NET库,我们使用它能够轻松的实现对应数据的导入,导出功能,并且还能通过其对应的属性对Excel进行对应的样式调整。是一个简洁而又强大的第三方库。
追逐时光者
2019/08/28
1.7K0
.Net之Nopi Excel数据导出和批量导入功能
C#使用NOPI导入Excel
附赠一个winform导入Excel的Demo。 https://github.com/yimogit/NopiExcelDemo
易墨
2018/09/14
1.4K0
NPOI操作EXCEL
------------------------------------------------------------------------
zls365
2020/10/30
1.8K0
NPOI操作EXCEL
SpringBoot整合EasyExcel实现复杂Excel表格的导入&导出功能
🎉SpringBoot整合EasyExcel实现复杂Excel表格的导入&导出功能
IT_陈寒
2023/12/14
5850
SpringBoot整合EasyExcel实现复杂Excel表格的导入&导出功能
Java通过Poi的开发Excel导入导出和下载功能
最近有用到Excel的下载、导入、导出功能。提供一个Excel模板给用户下载,用户根据规范填写模板然后再导入Excel数据,保存到数据库,也可导出类表数据为Excel。因为有时候页面添加功太麻烦,就做成这样的Excel批量导入。
sunonzj
2022/06/21
2.8K0
Java通过Poi的开发Excel导入导出和下载功能
Net操作Excel(终极方法NPOI)
前言 Asp.net/C#操作Excel已经是老生长谈的事情了,可下面我说的这个NPOI操作Excel,应该是最好的方案了,没有之一,使用NPOI能够帮助开发者在没有安装微软Office的情况下读写Office 97-2003的文件,支持的文件格式包括xls, doc, ppt等。NPOI是构建在POI 3.x版本之上的,它可以在没有安装Office的情况下对Word/Excel文档进行读写操作。 方法 先去官网:http://npoi.codeplex.com/下载需要引入dll(可以选择.net2.0
磊哥
2018/05/08
2.4K0
.NET Core使用NPOI将Excel中的数据批量导入到MySQL
前言:   在之前的几篇博客中写过.NET Core使用NPOI导出Word和Excel的文章,今天把同样我们日常开发中比较常用的使用Excel导入数据到MySQL数据库中的文章给安排上。与此同时还把NPOI-ExportWordAndExcel-ImportExcelData这个开源项目升级到了.NET Core 3.1版本(注意之前一直是在.NET Core2.2的基础上开发的),升级的过程中遇到了不少坑,在项目中会有一些注释关于升级到.NET Core3.1需要修改的代码这里就不做详细的讲解了可以Cl
追逐时光者
2020/09/16
4.9K0
.NET Core使用NPOI将Excel中的数据批量导入到MySQL
java实现excel表格导入数据库表「建议收藏」
导入excel就是一个上传excel文件,然后获取excel文件数据,然后处理数据并插入到数据库的过程
全栈程序员站长
2022/09/14
3.1K0
java实现excel表格导入数据库表「建议收藏」
Npoi导入导出Excel操作
    之前公司的一个物流商系统需要实现对订单的批量导入和导出,翻阅了一些资料,最后考虑使用NPOI实现这个需求。 在winform上面实现excel操作:http://www.cnblogs.com/CallmeYhz/p/4920293.html,NPOI的主页:http://npoi.codeplex.com/ 简介 NPOI 是 POI 项目的 .NET 版本。POI是一个开源的Java读写Excel、WORD等微软OLE2组件文档的项目, 使用 NPOI 你就可以在没有安装 Office 或者相应
用户1055830
2018/01/18
3.7K2
Npoi导入导出Excel操作
abp_vue导入导出excel
后端abp,前端vue导入excel,开始准备用直接用npoi,觉得要写太多的代码,就算从以前的复制粘贴也麻烦,所以偷懒直接用别人的轮子 Magicodes.IE。这样可以节省很多工作,根据实体生成excel模板、支持枚举、导入时自动验证数据是否合法(必填、类型等)
用户6362579
2019/12/11
2.7K1
C# 使用 NPOI 库读写 Excel 文件
NPOI 是开源的 POI 项目的.NET版,可以用来读写Excel,Word,PPT文件。在处理Excel文件上,NPOI 可以同时兼容 xls 和 xlsx。官网提供了一份 Examples,给出了很多应用场景的例子,打包好的二进制文件类库,也仅有几MB,使用非常方便。
跟着阿笨一起玩NET
2018/09/19
9K1
JSP上传文件与导出Excel表
我们可以通过Apache的fileupload组件来实现jsp上传文件,这样就不需要自己去写具体的实现了,首先需要配置如下依赖:
端碗吹水
2020/09/23
4K0
JSP上传文件与导出Excel表
使用NPOI导出Excel文件
在Controllers控制器目录中创建ExportController.cs控制器
全栈程序员站长
2022/07/02
2K0
使用NPOI导出Excel文件
NPOI导出数据
将一个表的数据导出到Excel表中和将Excel表中的数据导入到数据库中,需要怎么做?
PHY_68
2020/09/16
1.3K0
NPOI导出数据
如何将excel表格导入mysql数据库_MySQL数据库
打开企业管理器开要导入数数据库,在表上按右键,所务–>导入数据,弹出DTS导入/导出向导,按 下一步 , 2、选择数据源 Microsoft Excel 97-2000,文件名 选择要导入的xls文件,按 下一步 , 3、选择目的 用于SQL Server 的Microsoft OLE DB提供程序,服务器选择本地(如果是本地数据库的话,如 VVV),使用SQL Server身份验证,用户名sa,密码为空,数据库选择要导入数据的数据库(如 client),按 下一步 , 4、选择 用一条查询指定要传输的数据,按 下一步 , 5、按 查询生成器,在源表列表中,有要导入的xls文件的列,将各列加入到右边的 选中的列 列表中,这一步一定要注意,加入列的顺序一定要与数据库中字段定义的顺序相同,否则将会出错,按 下一步 , 6、选择要对数据进行排列的顺序,在这一步中选择的列就是在查询语
全栈程序员站长
2022/11/08
56.5K0
C# NOPI 项目实战(经典)(可下载项目源码)
这篇文章主要介绍了如何安装NPOI,以及NPOI具体如何使用,并且用具体实例介绍了excel导入到datagridview以及 datagridview如何导出到excel并保存。如果不清楚这块的去我公众号去搜索这篇文章阅读。
zls365
2021/02/26
2.3K0
使用Python读取Excel表格“.xlsx”和“.xls”方法大全:一文教会你如何使用Python处理Excel表格数据
随着数据分析的普及,处理Excel表格成了开发者的日常需求。今天,猫头虎为你整理了使用Python读取.xlsx和.xls文件的多种方法,无论是新手还是老鸟,都能轻松掌握!🚀
猫头虎
2025/01/10
1.4K0
前端读取Excel报表文件
在实际开发中,经常会遇到导入Excel文件的需求,有的产品人想法更多,想要在前端直接判断文件内容格式是否正确,必填项是否已填写
书童小二
2018/09/03
4.4K0
前端读取Excel报表文件
Excel导入-----导出(包含所选和全部)操作
在做系统的时候,很多时候信息量太大,这时候就需要进行Excel表格信息的导入和导出,今天就来给大家说一下我使用Excel表格信息导入和导出的心得。
wfaceboss
2019/04/08
1.1K0
npoi批量导入实现及相关技巧
  批量导入功能对于大部分后台系统来说都是不可或缺的一部分,常见的场景-基础数据的录入(部门,用户),用批量导入方便快捷。最近项目需要用到批量导入,决定花点时间写套比较通用的Excel导入功能。经过考
用户1168362
2018/01/05
1.7K0
npoi批量导入实现及相关技巧
相关推荐
.Net之Nopi Excel数据导出和批量导入功能
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验