因为最近在做一个小项目,负责的是文件上传和Excel导入导出,在开发过程中也遇到挺多问题,主要是在修改的过程中,
总觉得自己的代码太复杂,不利于后期的维护和修改,所以一直想尽办法进行封装。最终代码还是相对简洁一点。
因为开发经验的不足,可能我最后说的相对简洁,就是你们一开始开发时的想法。但是学习过程就是这样吧。
描述一下项目的需求:
其实也比较简单,做的是类似信息管理系统,多个页面都需要有导入Excel数据的功能。
然后一开始是这样的思路:
就这样,在每一个页面都写了上传文件的HTML代码,提交到相应的控制器,控制器做简单的处理后,转到逻辑层去执行导入Excel数据的代码。后来改代码,真的麻烦!!!
后面想到有部分视图这东西,一开始没有用是觉得每个文件上传都是上传到不同的地址,后来想想在每个页面用Ajax提交到不同的控制器就好了。
再后来又想,为什么要提交到不同的控制器?直接提交到一个控制器就行了,然后在这个控制器进行判断,执行不同的Excel导入类就行了。结果就写成这样:
因为每张数据表都对应一个导入类,所以导入类没有办法写成一个
部分视图的代码:
主要是红色框的部分,每个页面都加载这个部分视图,这样在上传文件部分做修改的时候,就只要修改部分视图这里了。
其中一个页面的js代码:
控制器代码:
然后ExcelImport.DataSaveInDB();方法里面就是根据表名,去执行相应的Excel导入类
代码比以前少了很多,维护起来也方便很多。