MVC项目数据导入与导出

本文探讨了在MVC项目中数据导入与导出的重要性和实现过程。数据导出涉及创建工作簿、工作表,设置标题、单元格等,并将其转化为流输出。数据导入则相对复杂,包括获取模板文件、转换为二进制数组,再到读取和保存到DataTable,最终保存到数据库。整个过程中涉及文件操作、Excel处理及数据库交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据的导入与导出在很多的地方都可以见到,而对不会编程的人来说就是普通的导入与导出,是一件特别简单不需要头脑的事,甚至不会有人在意数据的导入与导出,我以前甚至于是这一类人,而自从我学习编程以后就对数据的导入与导出产生了一种新的看法与观念,数据的导入与导出,在很多的网页也可以见到数据的导入与导出,通常在MVC的项目中会有数据导入与导出,这数据导入与导出看是不起眼,其实用处特别的大,这有着一种交互作用,我就来说说数据的导入与导出的数据编程吧!

  首先是数据导出,自我认为数据导出的编程比导入简单且不复杂,第一步先创建工作簿,创建工作簿还需要创建工作表,然后就是设置表标题、创建行、创建单元格、单元格设置值、合并单元格、设置单元格样式,创建行时要注意:行高 HeightInPoints的单位是点,而Height的单位是1/20个点,所以Height的值永远是HeightInPoints的20倍,之后就是设置表头了,设置表头要创建一行索引,给sheet添加第一行的头部标题,再设置行高,创建单元格并设置值然后再创建表头的样式,后面的步骤是:遍历查询到的数据,设置表格数据;创建数据内部部分和单元格样式;遍历数据,创建数据部分行列;创建行、创建列并设置值;给每个单元格添加样式,随后就是设置列宽为自动适应,最后就是把创建好的Excel输入到浏览器,把Excel转化为流输出,这数据导出就完成了,下面就是数据导出的比较重要的部分(如图所示):

  接下来就是数据的导入:数据的导入说简单嘛也不为过,最主要的是它比数据导出要复杂许多,数据导入需要获取模板文件的路径,判断模板是否存在,然后再获取文件名称以流的形式返回文件;之后就是判断文件后缀;再然就是转换成二进制数组声明一个和文件大小一致的二进制数组,将上传的文件转成二进制数组,将二进制数组转为内存流,将内存流转为工作簿;然后判断是否存在工作表,获取出第一个工作表,判断工作表中是否存在行,将数据保存到DataTable中定义DataTable(获取Excel中的标题行,设置dataTable的列名 第二行为标题行,索引为1;获取表格的列数;获取表格的行数),创建DateTable中的列,通过遍历行中的每一个单元格,获取标题行各个单元格的数据把列添加到DataTable中;读取Excel中的数据,(sheet.FirstRowNum+2) 第一行是说明行 第二行是标题行,第三行开始才是数据,获取行,DataTable中创建一行,遍历行中列获取数据,将一行的数据添加到Datatable,移除掉DataTable中的空行,将dataTable中的数据转换为List<S_User>,查询出所有用户组和用户角色;存放所有的用户包括数据库和添加的用于判断工号是否重复,然后定义存放容器,再遍历datatable中的数据;之后创建一个S_User实例保存一条用户数据,添加到要保存的列表saveUsers、添加到用于查重的列表allUsers;最后进行数据保存,保存用户数据,获取保存后的用户ID,再保存虚拟账户数据,提交事务就完成了,导入数据的比较重要部分(如图所示):

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值