您的位置:首页 > Web前端 > JQuery

jquery ajax 多文件Excel解析上传

2016-12-29 17:58 549 查看
------jsp 前台--------------------

<form id="importOrderFrom" name="importOrderFrom" method="post" enctype="multipart/form-data">

<div class="dthwxxheada" style="position:relative;">

<span>客户名称</span>

<input type="hidden" name="merchantName" id="merchantName">

<input type="text" name="venderId">

<input type="hidden" name="vender">

<ul class="searchrelt" name="searchrelt" style="width:150px;">

</ul>

</div>

<div class="dthwxxheada">

<span>订单来源</span>

<select id="orderSource" name="orderSource">

<option value="">请选择</option>

<option value="10001">1号店商家明细</option>

<option value="10003">京东商家</option>

<option value="10005">天猫商家</option>

</select>

<a href="http://www.fron.net/help/661.jhtml" target="_blank">采购单获取说明</a>

</div>

<div class="dthwxxheada">

<span>解析模式</span>

<select id="fileType" onchange="changeFileType()">

<option value="1">普通文件</option>

<option value="2">多个文件</option>

</select>

<span style="color: red;">普通文件:一个excel里有多个订单;

多个文件:每个excel里只有一个订单

</span>

</div>

<div class="dthwxxheada" id="singleFile">

<span>订单文件</span>

<input type="file" id="orderImportFile" name="orderImportFile[]" />

</div>

<!-- <div id="upload" style="display: none;">

</div>

<a class="uploadbtn" style="text-align: right;display: none;margin-left: -1px;">解析预览</a>

-->

<div class="dthwxxheada" >

<button class="btn btn-info" id="btm" type="button" onclick="importOrder()" >解析预览</button>

</div>

<label id="errorInfo" style="margin-left:20px;color: red;"></label>

</form>

<script type="text/javascript" src="${pageContext.request.contextPath}/js/bootstrap.min.js"></script>

<script type="text/javascript" src="${pageContext.request.contextPath}/js/bootstrap-table.min.js"></script>

<script type="text/javascript" src="${pageContext.request.contextPath}/js/bootstrap-select.min.js"></script>

<script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-form.js"></script>

<script type="text/javascript" src="${pageContext.request.contextPath}/js/dateutil.js"></script>

<script type="text/javascript" src="${pageContext.request.contextPath}/js/order/order_import.js?version=201610211604"></script>

--------------------------js 文件事件--------------------------

/**

* 当选择天猫时候,显示多文件模式还是单文件模式。

*/

function changeFileType(){

var fileType=$("#fileType").val();

if(fileType=="2"){

$("#orderImportFile").attr("multiple","multiple");

}else{

$("#orderImportFile").removeAttr("multiple");

}

}

/**

* 解析预览按钮事件

*/

function importOrder(){

$("#btm").attr("disabled","true"); //设置变灰按钮

setTimeout("$('#btm').removeAttr('disabled')",4000);

var fileType = $("#fileType").val();

var urlStr="";

if(fileType=="2"){

urlStr = ctx+'/orderImport/parseDuoFileExcel';

}else{

urlStr = ctx+'/orderImport/parseExcel';

}

var file=$("#orderImportFile").val();

if(file==""){

alert("请选择订单文件!");

return;

}

var extStart=file.lastIndexOf(".");

var ext=file.substring(extStart,file.length).toUpperCase();

if(ext!=".XLS" && ext!=".XLSX"){

alert("文件格式仅限于.xls或.xlsx");

return;

}

var displayV = $("ul.searchrelt").css("display");

var merchantName = "";

if(displayV=="none"){

merchantName = $("ul.searchrelt").children().children().val();

$("#merchantName").val(merchantName);

}

var orderSource=$("#orderSource").val();

if(merchantName==null || merchantName==""){

alert("请选择客户名称!");

return;

}else if(orderSource==null || orderSource==""){

alert("请选择订单来源!");

return;

}else if(file!=""){

$('#table').bootstrapTable('destroy');

$("#errorInfo").html("");

var options = {

url:urlStr,

data:{},

type:'post',

beforeSubmit:function() {

MaskUtil.mask("正在解析...");

},

success:function(data){

MaskUtil.unmask();

if(data.result=="1"){//--1--则解析成功,正常显示预览页面

$("#errorInfo").html(data.msg);

orderVersion = data.orderVersion;

$('#table').bootstrapTable({

url:ctx+"/orderImport/loadParseExcel",

queryParams:"queryParamsForOrderImport"

});

}else if(data.result=="2"){//--2--则显示维护映射页面

//1生成目的地下拉框

var areaSelect=new Array();

$.ajax({

url:ctx+'/orderImport/loadFronarea',

data:{platId:orderSource},

dataType:'json',

async: false,

success:function(dataArea) {

areaSelect = dataArea.area;

},

error:function(result) {

}

});

//2生成页面数据

var table11 = $(".table111 tbody").empty();

var orderTempMapList = data.orderTempMapList;

for(var i=0;i<orderTempMapList.length;i++){

var elactPlatId=orderTempMapList[i].elactPlatId;

var elactPlatName=orderTempMapList[i].elactPlatName;

var descBranchId="";

var descBranchIdHidden="";

var branchName="";

var descId="";

var descIdHidden="";

if(elactPlatId=='10001'){//1号店

descId = orderTempMapList[i].descBranchId.substr(0,2);

branchName = orderTempMapList[i].descBranchId.substr(0,2);

descBranchId = orderTempMapList[i].descBranchId;

descBranchIdHidden = orderTempMapList[i].descBranchId;

}else if(elactPlatId=='10003'){//京东

var addressDel=orderTempMapList[i].addressDel;

descId=orderTempMapList[i].descId;

for(var j=0;j<areaSelect.length;j++){

var areaName = areaSelect[j].areaName;

var indexDesc = addressDel.indexOf(areaName);

if(indexDesc!=-1){

branchName=areaName;

break;

}

}

descBranchId = orderTempMapList[i].descBranchId;

descBranchIdHidden = orderTempMapList[i].descBranchId;

descIdHidden = orderTempMapList[i].descId;

}else if(elactPlatId=='10005'){//天猫

descId = "";

branchName = orderTempMapList[i].descBranchId;

descBranchId = orderTempMapList[i].descBranchId;

descBranchIdHidden = orderTempMapList[i].descBranchId;

}

var table11Str=" <tr> "+

" <td><input type='hidden' name='elactPlatIds' value='"+elactPlatId+"'/>"+elactPlatName+"</td> "+

" <td><input type='hidden' name='descAreaIds' value='"+descIdHidden+"'/>"+descId+"</td> "+

" <td><input type='hidden' name='dcNames' value='"+descBranchIdHidden+"'/> "+descBranchId+"</td> ";

table11Str+= " <td>"+elactPlatName+"</td>";

//3生成目的地下拉框

var selectedAreaId="";

var selectArea="<select id='area_"+i+"' name='areaIds' onchange='appendBranch("+elactPlatId+","+i+")'><option value=''>请选择</option>";

for(var j=0;j<areaSelect.length;j++){

var areaName = areaSelect[j].areaName;

var areaId = areaSelect[j].areaId;

if(branchName.indexOf(areaName)!=-1){

selectedAreaId=areaId;

selectArea+="<option selected='selected' value="+areaId+">"+areaName+"</option>";

}else{

selectArea+="<option value="+areaId+">"+areaName+"</option>";

}

}

selectArea+="</select>";

table11Str+= " <td>"+selectArea+"</td>";

//4生成目的地第三级分仓下拉框

var dataAreaDcBranch=new Array();

$.ajax({

url:ctx+'/orderImport/selectBranchsByPlatIdAndAreaId',

data:{areaId:selectedAreaId,platId:elactPlatId},

dataType:'json',

async: false,

success:function(dataAreaBranch) {

dataAreaDcBranch = dataAreaBranch.dcBranch;

},

error:function(result) {

}

});

var selectAreaBranch="<select id='areaBranch_"+i+"' name='areaBranchs' ><option value=''>请选择</option>";

for(var j=0;j<dataAreaDcBranch.length;j++){

var branchName = dataAreaDcBranch[j].branchName;

var branchId = dataAreaDcBranch[j].branchId;

selectAreaBranch+="<option value="+branchId+">"+branchName+"</option>";

}

selectAreaBranch+="</select>";

table11Str+= " <td id='td_branch_"+i+"'>"+selectAreaBranch+"</td>"+

" </tr>";

table11.append(table11Str);

}

$('.daoru').show();

}else{

alert("解析失败!");

}

},

error:function(result) {

MaskUtil.unmask();

alert("解析失败!");

}

};

$("#importOrderFrom").ajaxSubmit(options);

}else{

alert("请选择订单文件!");

return;

}

}

---------java springMvc后台接受--------

/**

* 解析多文件excel

* @param merchantName

* @param orderSource

* @param orderImportFileList

* @param fileIndexList

* @return

*/

@RequestMapping(value = "/parseDuoFileExcel",method=RequestMethod.POST)

@ResponseBody

public Object parseDuoFileExcel(

@RequestParam("merchantName") String merchantName,

@RequestParam("orderSource") String orderSource,

@RequestParam("orderImportFile[]") List<CommonsMultipartFile> orderImportFileList) {

Date opTime = new Date();

String orderVersion = DateUtils.formatDate(opTime, DateUtils.COMPACTDATETIME_FORMAT);

Map<String,Object> map=new HashMap<String, Object>();

//CommonsMultipartFile orderImportFile = orderImportFileList.get(j);

//String suffix = orderImportFile.getFileItem().getName();

try {

if(orderSource.equals(Constant.ORDER_SOURCE_TM)){//天猫

map = orderImportTmServiceImpl.parseDuoExcel_2007(merchantName,orderVersion,orderSource,

orderImportFileList,null);

}else{

return "{result:0,msg:'解析出现异常!'}";

}

}catch (Exception e) {

e.printStackTrace();

return "{result:0,msg:'解析出现异常!'}";

}

return map;

}

/**

* 解析普通excel

* @param merchantName

* @param orderSource

* @param orderImportFile

* @return

*/

@RequestMapping(value = "/parseExcel",method=RequestMethod.POST)

@ResponseBody

public Object parseExcel(@RequestParam("merchantName") String merchantName,

@RequestParam("orderSource") String orderSource,

@RequestParam("orderImportFile[]") List<CommonsMultipartFile> orderImportFileList) {

Map<String,Object> map = null;

for (int i = 0; i < orderImportFileList.size(); i++) {

CommonsMultipartFile orderImportFile = orderImportFileList.get(i);

String suffix = orderImportFile.getFileItem().getName();

try {

//1-2003excel

if(suffix.endsWith(Constant.EXCEL_SUFFIX_2003)){

if(orderSource.equals(Constant.ORDER_SOURCE_YHD)){//1号店

map = orderImportYhdServiceImpl.parseExcel_2003(merchantName,orderSource,orderImportFile);

}else if(orderSource.equals(Constant.ORDER_SOURCE_JD)){//京东

map = orderImportJdServiceImpl.parseExcel_2003(merchantName,orderSource,orderImportFile);

}else if(orderSource.equals(Constant.ORDER_SOURCE_TM)){//天猫

map = orderImportTmServiceImpl.parseExcel_2003(merchantName,orderSource,orderImportFile);

}

}

//2-2007以上excel

else if(suffix.endsWith(Constant.EXCEL_SUFFIX_2007)){

if(orderSource.equals(Constant.ORDER_SOURCE_YHD)){//1号店

map = orderImportYhdServiceImpl.parseExcel_2007(merchantName,orderSource,orderImportFile);

}else if(orderSource.equals(Constant.ORDER_SOURCE_JD)){//京东

map = orderImportJdServiceImpl.parseExcel_2007(merchantName,orderSource,orderImportFile);

}else if(orderSource.equals(Constant.ORDER_SOURCE_TM)){//天猫

map = orderImportTmServiceImpl.parseExcel_2007(merchantName,orderSource,orderImportFile);

}

}else{

return "{result:0,msg:'解析出现异常!'}";

}

}catch (Exception e) {

e.printStackTrace();

return "{result:0,msg:'解析出现异常!'}";

}

}

return map;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jquery ajax 多文件Excel