文件的导入与导出
开发工具与关键技术:VisualStudio MVC
作者:刘家龙
撰写时间:2019/4/7
这次总结的主题是文件的导入与导出,虽然现在为了减短开发时间用的都是封装好的导入与导出的代码,但作为一个程序员还是要必要了解一下它的基本思路。
一、导入
- 构建防方法,并在方法体里设置HttpPostedFileBase与文件参数,HttpPostedFileBase参充当类的基类,这些类提供对客户端已上载的文单独文件的访问。
- 判断文件是否为空,若为空则返回提示为空。
- 筛选要导入文件的格式,使用正则表达式可以准确地筛选,也可以通过其它方法。
- 修改文件的名称,当上传多个文件时通过获取时间来命名能够避免文件的重复。
- 检查是否有保存上传文件的目录,若是没有则通过代码来创建目录,这是文件能否保存的前提。
- 声明文件的保存路径,在导入多种文件或者多个文件时有助于查找与分类。
- 如果导入的是Excel等表格的话,就需要判断表格是否有数据。
- 将文件转化为IO流等内存流,然后再将内存流转化为需要数据流添加到特定的地方,重新变成我们所需要的数据。
二、导出
这里就以导出一个Excel表格为例,如果我想导出一个学生表格,而这个表又与学院ID,年级ID,班级ID有关,那么在构建的方法体里就需要声明三个ID。既然是导出Excel表格,我们就需要创建Excel对象和对象工资簿来接收导出的数据。
随后就是要查寻我们要导出的信息,这里涉及到的是多表查询,下面是我在模拟项目时写的一下代码,算是自己写多表查询时的一个模板吧。
因为时声明ID进行查询,所以查询完毕后需要判断一下是否有查询出相应的ID,要是查出来的ID大于0,我们就让声明的ID等于表格的ID。
接下来就是构建接收导出数据的Excel表格了。首先我们先给导出的Excel表格设置表头,设置完后再逐渐添加头部标题数据。接下来就是利用for循环根据表格的长度自动添加行,然后再再美一行的单元格里依次添加表格数据了,这里需要判断单元格的数据是否为空,若是要求单元格的数据不能为空,就把数据为空的单元格的值设置为0或者默认值。最后就是将文件转换为文件流后再将文件返回出来了。