ASP.Net. MVC 导入与导出

文献种类:专题技术文献;
开发工具与关键技术: Visual Studio
文献编号:ASP.Net. MVC 导入与导出
年级:1904
撰写时间:2020 年 8 月 8 日
作者:张家诚

导入*

导入 Excel 表格是方便我们在开发数据中快速的导入数据,而不是一条一条数据的新增,导入 Excel 表格方便我们快速的保存数据,判断数据的正确性,接下来就是我学习开发时候导入 Excel 表格的一些数据代码。
首先创建一个 Excel 模板,用来创输数据,因为模板方便判断导入的数据是否是 Excel 的表格,通过页面传输过来的数据,开始封装数据,首先开始获取模板路径,然后判断模板是否存在,再获取文件名称,最后返回页面。确保 Excel 中标题行的名称和表单中与之对应的字段的标题一致,并且表单中字段名称不能相同。以及 Excel 中数据的格式要正确,序号无法导入。
一、下载模板
1.获取模板路径 :string filePath = Server.MapPath("~/Document/用户导入模板.xls");

2.判断模板是否存在 :if (System.IO.File.Exists(filePath))

3.获取文件名称: string strfileName = Path.GetFileName(filePath);

4.返回文件:return File(newFileStream(filePath, FileMode.Open),
“application/octet-stream”, strfileName);

5.使用字符串创建一个内容结果对象:return Content("模板文件不存在,请联系系统运维人员。
");
如图:
ASP.Net. MVC 导入与导出

二、
1.判断页面传过来的文件是否为 Excel 表格:string strExtension =
Path.GetExtension(xlsFile.FileName);

  1. 获取文件的后:(".xls".Equals(strExtension,
    StringComparison.CurrentCultureIgnoreCase))

3.声明二进制数组存放文件: byte[] fileBytes = new byte[xlsFile.ContentLength];

4.将传入的文件转化为二进制的数组存入:xlsFile.InputStream.Read(fileBytes, 0, xlsFile.ContentLength);

5 将二进制的数组转化为内存流:MemoryStream excleMemoryStream = new
MemoryStream(fileBytes);

6.将内存流转化为工作簿 :NPOI.SS.UserModel.IWorkbook workbook = new
NPOI.HSSF.UserModel.HSSFWorkbook(excleMemoryStream);

7.判断工作簿中是否有工作表:(workbook.NumberOfSheets > 0)

查询出角色,用户组,用户名,工号,余额,E-mali,头像:用来根据名称获取对应的 ID

8 获取第一个工作表: NPOI.SS.UserModel.ISheet sheet = workbook.GetSheetAt(0);
9.工作表中是否有数据: (sheet.PhysicalNumberOfRows > 0)

10.先把Excel保存到临时表格里面(DataTable中):DataTable dt = new DataTable();

  1. 获取标题行— 第二行,索引为1;第一行是说明:NPOI.SS.UserModel.IRow rowHeader = sheet.GetRow(1);
    如图:

ASP.Net. MVC 导入与导出

12.获取表格列数:int cellCount = rowHeader.LastCellNum;//行里面获取列总数

14.获取表格行数(最后一行下标+1): int rowCount = sheet.LastRowNum + 1;//工作表获取行总数
15. Excel表头作为dt的列,创建dataTable中的列,循环添加标题行中各个单元格的值
for (int i = rowHeader.FirstCellNum; i < cellCount; i++)
如图:
ASP.Net. MVC 导入与导出

  1. 遍历表头行中每一个单元格,获取标题行各个单元格的数据并移除空行
    ASP.Net. MVC 导入与导出

三、封装查询的数据,判断数据是否为空,记录保存成功的数据条数,记录数据库已有数据重复而失败的数据条数,声明一个全局变量,判断数是否没有异常,没有就继续判断数据库中是否和传进来的数据是否重复
ASP.Net. MVC 导入与导出
ASP.Net. MVC 导入与导出
ASP.Net. MVC 导入与导出

四、把提取到的数据保存到数据库中,新增到用户表里面,把传输进来的数据保存到表格里面,最后返回页面。
ASP.Net. MVC 导入与导出
ASP.Net. MVC 导入与导出

导出:

数据库数据的导出,在大多数系统都是常见的,所以导出功能还是很重要的。数据的导出一般导出在 Excel 表格中,因为导入 Excel 中数据可观性较好。
例:
ASP.Net. MVC 导入与导出

一、导出 Excel 表格,首先通过页面传输过来的数据进行封装,筛选数据条数,把页面的数据导出 Excel 表格,判断需要导出的数据条数,判断数据条数,参数查询的判断。
1、数据查询&条件筛选
ASP.Net. MVC 导入与导出

筛选导出的数据
ASP.Net. MVC 导入与导出

1、创建 Excel 工作簿,和工作表格,设置表头,为 Excel 表格添加数据,创建行,添加数据,输出文件导出的内容。

有两种方法进行导出一种是根据模板文件直觉导出一种是自己设置 Excel 表头等数据进行导

2.1 根据模板文件的 Excel 导出
(1)检查模板文件是否存在
Server.MapPath 将相对的路径转为实际的物理路径
string templatePath = Server.MapPath("~/Document/ARDataTemplate.xls");
(2)判断模板是否存在
if (!System.IO.File.Exists(templatePath))
{
//如果不存在,就返回失败信息 return Content(“导出失败,请联系网站管理员”);
}
ASP.Net. MVC 导入与导出

(3)构建单元格样式
ASP.Net. MVC 导入与导出

(4)以流的方式返回把 Excel 转化为流,输出
ASP.Net. MVC 导入与导出

2.2 根据创建 Excel 进行导出
根据创建 Excel 工作簿,和工作表格,设置表头,为 Excel 表格添加数据,创建行,添加数据,输出文件导出的内容。
设置导出的内容,查询需要导出的数据,设置导出表头,然后添加数据,为文件命名,把文件导出 Excel 表格,把文件写入文件流,最后输出数据,把文件类型转换一下,最后导出就可以了。

(1)导出 Excel 表头
ASP.Net. MVC 导入与导出
ASP.Net. MVC 导入与导出

(2)导出Excel数据
ASP.Net. MVC 导入与导出