上传
/*
* 上传
*/
@RequestMapping(value = "/upload", method = RequestMethod.POST)
@ResponseBody
public Map generateResult(@RequestParam("file") MultipartFile multipartFile) throws Exception {
Map responseMap = new HashMap();
File file=getExcelInfo(multipartFile.getName(), multipartFile);
ArrayList<ArrayList<Object>> result = ExcelUtil.readExcel(file);
System.out.println(result);
return responseMap;
}
/*
*MultipartFile 转化成File
*/
public static File getExcelInfo(String fileName,MultipartFile Mfile){
//把spring文件上传的MultipartFile转换成CommonsMultipartFile类型
CommonsMultipartFile cf= (CommonsMultipartFile)Mfile; //获取本地存储路径
File file = new File("E:\\fileupload");
//创建一个目录 (它的路径名由当前 File 对象指定,包括任一必须的父路径。)
if (!file.exists()) file.mkdirs();
//新建一个文件
File file1 = new File("E:\\fileupload\\" + new Date().getTime() + ".xlsx");
//初始化webwork
Workbook wb = null;
//将上传的文件写入新建的文件中
try {
cf.getFileItem().write(file1);
} catch (Exception e) {
e.printStackTrace();
}
//初始化输入流
InputStream is = null;
try{
//验证文件名是否合格
if(!ReadExcel.validateExcel(fileName)){
}
//根据文件名判断文件是2003版本还是2007版本
boolean isExcel2003 = true;
if(WDWUtil.isExcel2007(fileName)){
isExcel2003 = false;
}
//根据新建的文件实例化输入流
is = new FileInputStream(file1);
//判断excel版本
wb=ReadExcel.getExcelInfo(is, isExcel2003);
is.close();
//删除临时文件
File[] files = file.listFiles();
//遍历删除文件
for(File tempFile: files){
tempFile.delete();
}
}catch(Exception e){
e.printStackTrace();
} finally{
if(is !=null)
{
try{
is.close();
}catch(IOException e){
is = null;
e.printStackTrace();
}
}
}
return file1;
}
文件下载
/*
* 文件下载
* @see com.stjy.text.service.testService#exportExcel(javax.servlet.http.HttpServletResponse)
*/
public void exportExcel(HttpServletResponse response) throws Exception{
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("sheet1");
for(int i = 0 ;i <10; i++){
HSSFRow row = sheet.createRow(i);
for(int j = 0; j < 10; j ++){
HSSFCell cell = row.createCell(j);
cell.setCellValue("hhhhh");
}
}
response.setContentType("application/octet-stream");
response.setHeader("Content-disposition", "attachment;filename=createList.xls");// 默认Excel名称
response.flushBuffer();
wb.write(response.getOutputStream());
}
html文件
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#login").click(function(){
var userINfo={
"username" : "admin",
"passwd" : "abc"
}
$.ajax({
type:'POST',
url:"http://localhost:8080/stjy/test/excel1",
data: JSON.stringify(userINfo) ,
success:function(result){
console.log(result)
},
contentType : 'application/json',
dataType : 'json',
});
});
$('#upload').click(function(){
var formData = new FormData($('#uploadForm')[0]);
$.ajax({
url:"http://localhost:8080/stjy/test/upload",
type:"post",
data:formData,
cache: false,
processData: false,
contentType: false,
success:function(data){
console.log(data);
alert("操作成功!");
},
error:function(e){
alert("网络错误,请重试!!");
}
});
});
var $eleBtn1 = $("#btn1");
//已知一个下载文件的后端接口:https://codeload.github.com/douban/douban-client/legacy.zip/master
//方法一:window.open()
$eleBtn1.click(function(){
window.open("http://localhost:8080/stjy/test/exportExcel");
});
/* $("#btn1").click(function(){
$.ajax({
type:'POST',
url:"http://localhost:8080/stjy/test/exportExcel",
cache: false,
processData: false,
contentType: false,
success:function(){
console.log("成功");
},
});
});*/
});
</script>
</head>
<body>
<button id="login">excel解析</button>
<h3>文件上传</h3>
<form id="uploadForm" enctype="multipart/form-data">
文件:<input id="file" type="file" name="file"/>
</form>
<button id="upload">上传文件</button>
<div>
<input type="button" id="btn1" value="下载文件"/>
</div>
</body>
</html>