通过ajax Excel导入

使用FormData,进行Ajax请求并上传文件

这里使用JQuery,但是老版本的JQuery比如1.2是不支持的,最好使用2.0或更新版本:
注:
如上,通过$('#postForm').serialize()可以对form表单进行序列化,从而将form表单中的所有参数传递到服务端。
 
但是上述方式,只能传递一般的参数,上传文件的文件流是无法被序列化并传递的。
不过如今主流浏览器都开始支持一个叫做FormData的对象,有了这个FormData,我们就可以轻松地使用Ajax方式进行文件上传了。
Html代码   收藏代码
  1.  <div class="modal fade bs-example-modal-sm1" tabindex="-1" role="dialog" aria-hidden="true">
                       <div class="modal-dialog modal-sm1">
                         <div class="modal-content">
                            <div class="modal-header">
                             <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
                               <h4 class="modal-title" id="myModalLabel2">机器信息导入</h4>
                           </div>
                           <div class="modal-body">
                              
                               <form  id="excelImportForm">
                                      <table class="table table-striped table-bordered dataTable no-footer">
                                            <tbody>
                                              <tr>
                                                  <td style="text-align: center;font-size:20px;font-weight:700">文件</td>
                                                  <td><input type="file" name="fileName"/></td>
                                                  <td><input type="hidden" name="type" value="machInfo"/></td>
                                              </tr>
                                            </tbody>
                                      </table>
                                 </form>
                            </div>
                           <div class="modal-footer">
                             <button type="button" class="btn btn-default" data-dismiss="modal" id="cancelId">取消</button>
                             <button type="button" class="btn btn-primary" data-dismiss="modal"  οnclick="machInfoImport()">导入</button>
                           </div>
                          </div>
                       </div>
                   </div> 

 

Js代码   收藏代码
  1.  
    function  machInfoImport(){
          var formData= new FormData($("#excelImportForm")[0]);  
            $.ajax({
          type:'POST',
          url:'/fudaMes/excel/importExcel',
          data:formData,
          async: false,  
              cache: false,  
              contentType: false,  
              processData: false,  //必须要
              success: function (data) {  
                    if(data=="success"){
                    new PNotify({
                    title:'导入成功',
                                   text: '机器信息导入成功',
                                  type: 'success',
                                  styling: 'bootstrap3'
                              });   
                     
                    }else{
                   new PNotify({
                   title:'导入失败',
                                 text: ''+data,
                                 type: 'error',
                                styling: 'bootstrap3'
                            });
                    }  
                      $(".modal-backdrop").remove();
                        $("body").removeClass('modal-open');
                        $('body').removeAttr("style")
                    $('body').css('display','block');
                    load_orderInfo();
                 },  
               error: function (data) {  
                     console.log(JSON.stringify(data))  
                }  
          });   
        }  

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
poi解析excel功能参数说明 此项目是基于springMVC实现的,基本流程为从前台jsp页面使用Ajax文件上传导入excel文件(.xls(97-03)/.xlsx(07以后)),传到后台controller调用相应工具类解析后返回指定参数做后续处理. 1. POIUtil.java工具类 解析通过MutilpartFile导入Excel并解析里面数据,先判断文件的类型(excel处理有两种此处为两种通用)是.xls/.xlsx,通过workbook.getNumberOfSheets()获取工作簿数量,遍历工作簿,sheet.getLastRowNum()获取最大行数,将每行数据放入List list = new Array List(),并根据excel数据类型将器转换为字符串、数字、Boolean、公式、空值类型防止出现错误,最后返回一个list. 2. ExcelUtil.java工具类 解析通过MutilpartFile导入Excel并解析里面数据,先判断文件的类型(excel处理有两种此处为两种通用)是.xls/.xlsx,采用Apache的POI的API来操作Excel,读取内容后保存到List中,再将List转Json(使用Linked,增删快,与Excel表顺序保持一致),Sheet表1————>List1<Map> 步骤1:根据Excel版本类型创建对于的Workbook以及CellSytle 步骤2:遍历每一个表中的每一行的每一列,这里做了些小改动,因为后续可能解析过后可能会保存入数据库,这里为第一行数据添加一个自定义表头 String[] p = new String[]{"name","age","sex","tel","address","e-mail","phone"}; 遍历的列数量以p的length为准 步骤3:一个sheet表就是一个Json,多表就多Json,对应一个 List 一个sheet表的一行数据就是一个 Map 一行中的一列,就把当前列头为key,列值为value存到该列的Map中 Map 一个线性Hash Map,以Excel的sheet表顺序,并以sheet表明作为key,sheet表转换Json后的字符串作为value 最后返回一个LinkedHashMap 3. ExcelToJsonPoi.java工具类 这个与上面工具类类似,不过这个是解析本地excel文件不是使用的流,使用迭代遍历sheet工作簿与每行每列的值,将所有类型作为String类型处理返回一个json对象输出至控制台

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值