controller类的编写,在导入excel前,先执行删除所有数据,
注意:windows和linux操作系统的区别File.separator
路径分隔符windows是“\” 、linux是"/"
package com.soongrande.dfsk.excel.controller;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.swing.JOptionPane;
import org.easy.excel.ExcelContext;
import org.easy.excel.result.ExcelImportResult;
import org.mis.action.IActionContext;
import org.mis.service.IDefaultService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
import org.springframework.web.servlet.ModelAndView;
import com.soongrande.dfsk.business.dealer.model.SgDfskBusiDealerVO;
import com.soongrande.dfsk.business.serve.model.SgDfskBusiServeVO;
import com.soongrande.dfsk.excel.ExcelService;
@RestController
@RequestMapping("excel")
public class SgExcelController{
private static final Logger logger = LoggerFactory.getLogger(SgExcelController.class);
@Autowired
ExcelContext excelContext;
@Resource(name = ExcelService.BEAN_ID)
private ExcelService excelService;
@RequestMapping("/export")
public ModelAndView Import(){
ModelAndView view = new ModelAndView();
view.setViewName("system/excel/excel");
return view;
}
@RequestMapping("/doimport")
public ModelAndView customerImport(@RequestParam("excelFile") CommonsMultipartFile excelFile, HttpServletRequest request){
String id = "";
boolean res = true;
try{
int serveCts = excelService.deleteServe( new SgDfskBusiServeVO());
int dealCts = excelService.deleteDeal(new SgDfskBusiDealerVO());
SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
String updatePath = request.getSession().getServletContext().getRealPath("upload");
String name =excelFile.getFileItem().getName();
String fileName = df.format(new Date())+name;
File file = new File(updatePath, fileName);
if (!file.exists()) {
file.mkdirs();
}
// 保存临时文件
excelFile.transferTo(file);
InputStream excelStream = new FileInputStream(updatePath +File.separator + fileName);
ExcelImportResult result = excelContext.readExcel("dealer", 0,excelStream);
if(result!=null){
List<SgDfskBusiDealerVO> list = result.getListBean();
for(int i=0;i<list.size();i++){
SgDfskBusiDealerVO vo = list.get(i);
excelService.importDealerInfo(vo);
}
}
InputStream excelStream1 = new FileInputStream(updatePath +File.separator + fileName);
ExcelImportResult result1 = excelContext.readExcel("serve", 0,excelStream1);
if(result1 != null){
List<SgDfskBusiServeVO> list = result1.getListBean();
for(int i=0;i<list.size();i++){
SgDfskBusiServeVO vo = list.get(i);
excelService.importServeInfo(vo);
}
}
file.delete();
} catch(Exception e){
res = false;
e.printStackTrace();
}finally{
//JOptionPane.showMessageDialog(null, "导入成功!确认回到当前页面", "成功", JOptionPane.PLAIN_MESSAGE);
ModelAndView view = new ModelAndView();
if(res){
view.addObject("result","1" );
}else{
view.addObject("result","0" );
}
view.setViewName("system/excel/excel");
return view;
}
}
}
页面内容,对应,导入成功的提示
<div style="width: 100%; float: left;">
<div>
<form id="upload" action="../excel/doimport" method="post" enctype="multipart/form-data" >
<div class="form-group">
<label for="fileupload">点击此按钮选择文件</label>
<input type="file" name="excelFile" class="" id="fileupload">
</div>
<button id="uploads" type="submit" class="btn btn-primary Import">点此导入Excel</button>
</form>
<c:if test="${result eq '1'}">
<script>
MsgBox.showInfoMsg("操作成功!");
</script>
</c:if>
<c:if test="${result eq '0'}">
<script>
MsgBox.showInfoMsg("操作失败!");
</script>
</c:if>
</div>
</div>
service接口的方法实现
package com.soongrande.dfsk.excel.service.impl;
import java.util.List;
import java.util.Map;
import org.mis.service.IDefaultService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import com.soongrande.base.service.impl.BaseServiceImpl;
import com.soongrande.dfsk.business.dealer.model.SgDfskBusiDealerVO;
import com.soongrande.dfsk.business.serve.model.SgDfskBusiServeVO;
import com.soongrande.dfsk.excel.ExcelService;
@Service(ExcelService.BEAN_ID)
public class ExcelServiceImpl extends BaseServiceImpl implements ExcelService{
@Autowired
@Qualifier("defaultService")
IDefaultService service;
@Override
public Object[] importDealerInfo(SgDfskBusiDealerVO vo) throws Exception{
service.update("com.soongrande.dfsk.business.dealer.config.dealer.insert", vo);
return null;
}
@Override
public Object[] importServeInfo(SgDfskBusiServeVO vo) throws Exception{
service.update("com.soongrande.dfsk.business.serve.config.serve.insert", vo);
return null;
}
@Override
public Integer deleteServe(SgDfskBusiServeVO vo) throws Exception {
// TODO Auto-generated method stub
return service.delete("com.soongrande.dfsk.business.serve.config.serve.delete",vo);
}
@Override
public Integer deleteDeal(SgDfskBusiDealerVO vo) throws Exception {
// TODO Auto-generated method stub
return service.delete("com.soongrande.dfsk.business.dealer.config.dealer.delete",vo);
}
}