MVC导入导出

using System.IO;
导入Excel表格
导入数据大概思路:
第一步:判断文件类型是否是.xls,判断正确后再执行下面操作
1、获取上传的文件
2、把文件转换为二进制数组
3、将二进制数组转化为内存流
4、利用NPOI把内存流中的数据读取成Excel
5、使用NPOI读取数据
第二步:判断工作簿中是否有工作表
第三步:判断工作表中是否有数据
第四步:获取数据,保证数据的准确性和判断数据的重复性、移除空行
第五步:保存数据

引用NPOI
一、返回数据
检查模板文件是否存在 判断模板是否存在
Server.MapPath 将相对的路径转为实际的物理路径
stringtemplatePath = Server.MapPath(“~/Document/ARDataTemplate.xls”);
往模板中填充数据 一列一列的填充
以流的方式返回
把Excel转化为流,输出
MemoryStream BookStream = new MemoryStream();//定义内存流
BookStream.Seek(0, SeekOrigin.Begin);//输出之前调用Seek(偏移量,游标位置)方法:获取文件流的长度
参数:File(fileStream要发送到响应的流,contentType内容类型(MIME 类型),fileDownloadName浏览器中显示的文件下载对话框内要使用的文件名。)
return File(BookStream, “application/vnd.ms-excel”, fileName);
返回路径,格式,表头

导入思路:1、获取上传的文件ÿ

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Spring 中,可以通过拦截器(Interceptor)的方式来拦截导入导出的文件请求。拦截器是一种很强大的技术,它可以在请求到达 Controller 前或者返回视图前进行处理。在拦截器中,我们可以对请求进行预处理或者后处理,还可以修改 ModelAndView。 具体实现步骤如下: 1. 创建一个拦截器类,实现 HandlerInterceptor 接口,并重写 preHandle 和 postHandle 方法。 ```java public class FileInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { // 在请求到达 Controller 前进行处理 // 拦截导入导出的文件请求 String url = request.getRequestURI(); if (url.contains("import") || url.contains("export")) { // 对导入导出的文件进行处理 // ... } return true; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { // 在返回视图前进行处理 } } ``` 2. 在 Spring 配置文件中配置拦截器 ```xml <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/**"/> <bean class="com.example.interceptor.FileInterceptor"/> </mvc:interceptor> </mvc:interceptors> ``` 3. 配置拦截器的拦截路径 ```xml <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/file/**"/> <bean class="com.example.interceptor.FileInterceptor"/> </mvc:interceptor> </mvc:interceptors> ``` 在上面的示例中,我们将拦截器的拦截路径配置为 /file/**,表示只拦截以 /file 开头的请求。 通过以上步骤,就可以实现拦截导入导出的文件请求了。在 preHandle 方法中,我们可以对请求进行预处理,比如对文件进行处理或者限制文件大小等操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值