*数据是表格的形式,进常用到Excel
*在程序中经常可以看到有导出Excel文档,Excel导入数据的情况,现在我就说一下我学到的Excel导入
*Excel导入 跟 导出Excel相反,导出Excel需要用代码创建表头样式,Excel导入不需要用代码创建样式,在Excel文件里面有需要的信息,格式相对应就可以导入了
Excel导入的步骤
1、下载模板,模板有开发者决定 2、用户根据模板填写数据 3、用户上传数据 导入数据
导入部分的思路1、获取上传的文件 2、把文件转换为二进制数组 3、把二进制数组转换成内存流 4、利用NPOI把内存流中的数据读取成Excel 5、使用NPOI读取数据
在 Visual studio 2015 里面写Excel导入首先要在页面写一个Excel导入的按钮,然后在写它的布局
1、在视图(页面)上写一个按钮,跟模板
看图1
2、功能:点击按钮弹出模板
看图1·1
一、在视图上写方法
1-1、弹出导入模态框(打开模态框前先重置表单,再打开)
1-2、点击下载Excel文档(在Excel文档里面根据要求填写想要的信息)
1-3、选择到你下载的Excel文档,然后点击上传
(方法看图2)
!
二、控制器写内容
点击下载-获取Excel文档
2-1、获取模板文件的路径 相对路径转化为绝对路径
2-2、判断模板是否存在
看图3
三、点击上传-保存数据
3-1、判断文件的后缀名,没有则提醒
3-2、判断文件的类型(忽略大小写),没有则提醒
3-3、声明一个根文件大小的二进制数组,并将上传的文件转化为二进制数组,再把二进制数组转化为内存流,最后将内存流转化为工作簿
3-4、判断工作簿是否存在,没有则提醒
3-5、获取工作簿里面的第一个工作表、判断工作表里是否存在行,有则将数据保存到DataTable中(自己定义DataTable),获取工作表里的列数、获取工作表里的行数
看图4
3-6、在DataTable创建列
图5
3-7、通过遍历行中的每一个单元格,获取标题行各个单元格的数据,把列添加到DataTable中
3-8、读取Excel中的数据,获取Excel中的行,在DataTable中创建一行,遍历Excel行中列的数据,将每一行的数据添加到DataTable中
3-9、清除DataTable中的空行
四、查询数据
4-1、查询出所有客户leixing (用于后面判断导入的数据的准确性)
4-2、查询出所有地区leixing (用于后面判断导入的数据的准确性)
4-3、查询出所有经办人leixing (用于后面判断导入的数据的准确性)
4-4、查询出所有的客户信息 包括数据库和添加的 --用于判断客户是否重复
看图6
五、将dataTable中的数据转换为List
5-1、定义存放容器(用于保存新增的数据)
5-2、 //遍历datatable中的数据
5-3、//创建一个表(S_Product)实例保存一条用户数据
5-4、1-客户编号(必填)、2-客户名称等验证(必须写)
看图7
图8
六、进行数据保存
6-1、遍历新增的数据
6-2、保存导入的数据到数据库
6-3、提交事务,失败则提醒
图9
七、(看图片)、该图片都是判断没通过的提醒
图10
八、去除DataTable里面的空行
8-1、创建一个存放需要移除的DataRow空行的表
8-2、遍历所有行的数据,是否有空
8-3、遍历所有列的数据,是否有空
8-4、如果是空行,添加到removeList
8-5、移除掉空行
图11
【流:】
是指程序(计算机)读取文件的方式,程序(计算机)读取文件就像抽水一样,慢慢的把它抽取出来(读取大量数据都是用流的方式来读取),把文件当做一个水池,把文件里面的数据(字符串、二进制数组)当做水。
文件流:在程序读取文件时,文件的数据流向程序
内存流 :程序通过留的形式把内容输送到内存里存放
程序需要用到数据的时候,再从内存里面取出来用,可以通过留的形式把内容从内存中读取出来使用。
看图片
这是我所学到的Models引用步骤,所以我要分享给你们,希望可以帮助到你们。
以上就是我的分享,请多多指教。如果有更好的方法或不懂得地方欢迎在评论区教导以上就是我的分享,请多多指教。如果有更好的方法或不懂得地方欢迎在评论区教导和提问!