ajax上传execl + easyexecl解析execl

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>上传下载Execl</title>
<script src="../../js/jquery-1.9.1.min.js"></script>
</head>
<style>
.outer {
height: 200px;
/*border: 1px #F2DEDE solid;*/
} .flex {
display: flex;
} .ai-c {
align-items: center;
} .jc-c {
justify-content: center;
} input {
margin-top: 10px;
} .loading {
position: relative;
} .loading:after {
content: "加载中...";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
box-sizing: border-box;
padding: 100px;
background: rgba(0, 0, 0, .6) url(../../img/loading.gif) no-repeat center 60px;
color: #fff;
text-align: center;
} </style>
<body> <div>上传下载Execl:</div>
<div id="mainDiv" class="outer flex ai-c jc-c">
<div>
<a href="/download" download="测试">下载Execl模板</a><br/> <label for="file">上传Execl:</label>
<input type="file" id="file" name="file" value="" multiple><br/> <input type="submit" value="上传" onclick="submit()">
</div>
</div> <script> var submit = function () {
$("#mainDiv").addClass("loading"); var formData = new FormData();
formData.append('file', $('#file')[0].files[0]);
formData.append('file', $('#file')[0].files[1]); $.ajax({
type: "post",
url: "/upload2",
cache: false,
processData: false,
contentType: false,
data: formData,
success: function (json) {
$("#mainDiv").removeClass("loading");
alert("上传成功");
}, error: function (xhr) {
$("#mainDiv").removeClass("loading");
alert("错误提示: " + xhr.status + " " + xhr.statusText);
}
}); } </script>
</body>
</html>
    @ApiOperation("下载execl")
@GetMapping("download")
public void download(HttpServletResponse response) throws IOException {
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
String fileName = URLEncoder.encode("测试", "UTF-8");
response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
EasyExcel.write(response.getOutputStream(), DownloadData.class).sheet("模板").doWrite(data());
} @ApiOperation("文件上传")
@PostMapping("upload")
@ResponseBody
public String upload(MultipartFile file) throws IOException {
EasyExcel.read(file.getInputStream(), UploadData.class, new UploadDataListener(uploadDAO)).sheet().doRead();
return "success";
} @ApiOperation("多文件上传")
@PostMapping("upload2")
@ResponseBody
public String upload2(MultipartHttpServletRequest request) throws IOException {
List < MultipartFile > files = request.getFiles("file");
for (MultipartFile file : files) {
EasyExcel.read(file.getInputStream(), UploadData.class, new UploadDataListener(uploadDAO)).sheet().doRead();
}
return "success";
}
EasyExcel使用参考官方文档:https://alibaba-easyexcel.github.io/index.html

上传下载execl的更多相关文章

  1. Struts的文件上传下载

    Struts的文件上传下载 1.文件上传 Struts2的文件上传也是使用fileUpload的组件,这个组默认是集合在框架里面的.且是使用拦截器:<interceptor name=" ...

  2. 基于Spring Mvc实现的Excel文件上传下载

    最近工作遇到一个需求,需要下载excel模板,编辑后上传解析存储到数据库.因此为了更好的理解公司框架,我就自己先用spring mvc实现了一个样例. 基础框架 之前曾经介绍过一个最简单的spring ...

  3. Android okHttp网络请求之文件上传下载

    前言: 前面介绍了基于okHttp的get.post基本使用(http://www.cnblogs.com/whoislcj/p/5526431.html),今天来实现一下基于okHttp的文件上传. ...

  4. 用Canvas+Javascript FileAPI 实现一个跨平台的图片剪切、滤镜处理、上传下载工具

    直接上代码,其中上传功能需要自己配置允许跨域的文件服务器地址~ 或者将html文件贴到您的站点下同源上传也OK. 支持: 不同尺寸图片获取. 原图缩小放大. 原图移动. 选择框大小改变. 下载选中的区 ...

  5. Javaweb学习笔记——上传下载文件

    一.前言 在Javaweb中,上传下载是经常用到的功能,对于文件上传,浏览器在上传的过程中是以流的过程将文件传给服务器,一般都是使用commons-fileupload这个包实现上传功能,因为comm ...

  6. 服务器文件上传下载(XShell+Xftp)

    1.下载XShell安装包+Xftp安装包.百度网盘(XShell):https://pan.baidu.com/s/1eR4PFpS 百度网盘(Xftp):https://pan.baidu.com ...

  7. springmvc 上传下载

    springmvc文件上传下载在网上搜索的代码 参考整理了一份需要使用的jar.commons-fileupload.jar与commons-io-1.4.jar 二个文件 1.表单属性为: enct ...

  8. 简单Excel表格上传下载,POI

    一.废话 Excel表格是office软件中的一员,几乎是使用次数最多的办公软件.所以在java进行企业级应用开发的时候经常会用到对应的上传下载便利办公. 目前,比较常用的实现Java导入.导出Exc ...

  9. JAVA中使用FTPClient上传下载

    Java中使用FTPClient上传下载 在JAVA程序中,经常需要和FTP打交道,比如向FTP服务器上传文件.下载文件,本文简单介绍如何利用jakarta commons中的FTPClient(在c ...

随机推荐

  1. EF_DbHelper

    最近在学校使用EF用到项目中,希望能够提高开发效率,所以从网上找点相关的代码,找到代码原型地址: https://github.com/kungge/EF_DbHelper 自己根据需要进行改造: 版 ...

  2. 第3章 Spring AOP

    3.1 Spring AOP简介 3.11什么是AOP? AOP的全称是Aspect-Oriented Programming,即面向切面编程(也称面向方面编程).它是面向对象编程(OOP)的一种补充 ...

  3. Dubbo架构及原理

    1.Dubbo:Dubbo是一个分布式服务框架,SOA治理方案. 主要功能有:高性能的NIO通讯以及协议集成.服务动态寻址与路由.软负载均衡与容错.依赖分析与降级 主要特点: 连通性:provider ...

  4. MySQL 练习题目 二刷 - 2019-11-4 5:55 am

    建表的过程 create table student( sid int not null primary key, sname ) not null, sborn date, ssex ) not n ...

  5. leetcode 数据库练习 - 1205 每月交易I和II

    每月交易(一) Table: Transactions +---------------+---------+| Column Name | Type |+---------------+------ ...

  6. 安装ubuntu 16.04版本时搭建环境参考的文章

    重新编译的命令:make all ZIP_DEBUGINFO_FILES=0 DISABLE_HOTSPOT_OS_VERSION_CHECK=ok 解决ubuntu中vi不能正常使用方向键与退格键的 ...

  7. Gamma阶段第四次scrum meeting

    每日任务内容 队员 昨日完成任务 明日要完成的任务 张圆宁 #91 用户体验与优化https://github.com/rRetr0Git/rateMyCourse/issues/91(持续完成) # ...

  8. SpringBoot激活profiles

    多环境是最常见的配置隔离方式之一,可以根据不同的运行环境提供不同的配置信息来应对不同的业务场景,在SpringBoot内支持了多种配置隔离的方式,可以激活单个或者多个配置文件. 激活Profiles的 ...

  9. Java编程思想之八多态

    在面向对象的程序设计语言中,多态是继数据和继承之后的第三张基本特征 多态不但能够改善代码组织结构和可读性,还能够创建可扩展的程序--即无论在项目最初创建时还是在需要添加新功能时都可以"生长& ...

  10. java实现的一个【快速排序 】算法【原创】

    import java.util.Arrays; import org.apache.commons.lang.ArrayUtils; public class Test { public stati ...