数据库的导入导出
页面 HTML 导入部分:
1.弹出导入 Excel 的模态框:
写导入方法,方法里可根据自己的需求写一些限制
·禁用保存按钮
·重置表单等最后弹出模态框。
2. 下载模板:·打开一个新的窗口,并在窗口中装载指定 URL 地址的网页。
3. 上传 Excel 表格保存到临时表: ·避免取消选择后触发上传首先写个判断,判断上传文件为空或者为 undefined 就 return。显示加载层-提交表单-表单数据重载-清空表单。
二.控制器导入部分:
1. 导入模板模型
2. 下载数据模板:
·获取模板路径并判断模板是否存在,不存在就联系系统运维人员,存在则获取文件名称
并返回文件。
3. 将导入的数据保存到 session 里:
·获取读取的文件
·利用 NPOI 把内存流中的数据读取成 Excel-把 session 中的 ImportExcel 移除避免残留
以前数据
4.提取 session 里的数据进行分页
5.保存入数据库:
·纪录保存成功的数据条数和数据库重复而保存失败的数据条数
·实例化并运用 foreach 循环来判断是否与已有数据库重复
·最后返回 Json
三.HTML 导出部分
1.定义导出方法:function + 方法名(){}。
2.声明变量:方法里声明变量来接收表格数据的筛选条件。
3.判断:判断(if)出声明的变量是否为空或者为 undefined,如果为空或 undefined 则直接
赋值为零。
4.弹出询问框(关闭询问框-打开控制器的导出方法)。
四.控制器导出部分
1.导出数据到 Excel 表格:
ActionResult XX(参数){ }。
2.数据查询与条件筛选:多表联查
分组联查等方法筛选出需要的信息,并用 if 语句进行条件判断。
3. 创建工作簿
NPOI.HSSF.UserModel.HSSFWorkbook workbook = new NPOI.HSSF.UserModel.HSSFWorkbook();
4.创建工作表:NPOI.SS.UserModel.ISheet sheet1 = workbook.CreateSheet("旅客信息");
5.创建表头: NPOI.SS.UserModel.IRow row1 = sheet1.CreateRow(1);给 sheet 添加第一行的头
部标题;
6.设计表头:
7.写入表格数据:for 循环这个新的表,创建行并写入数据。
·将 Excel 数据转换为文件流输出,输出前调用 Seek(偏移量,游标位置)方法来确定流
开始的位置。
·seek(0,seekorigin.Begin)第一个参数表示相对的位置,第二个参数表示参照位置;
8.为下载的 Excel 文件命名
·假设文件名为 fileName,则 string fileName=“文件名称”+现在的时间+“.xls”
例:
string fileName = “旅客信息” +DateTime.Now.ToString(“yyy-MM-dd-HH-mm-ss
ffff”) + “.xls”
9.return File(ExcelStream,“application/vnd.ms-excel”, fileName)