excel导入(二)

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);
	}

}

 

转载于:https://my.oschina.net/u/3267005/blog/914425

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值