2015-08-31 86 views
0

我需要上传excel文件并从数组创建数据表。怎么做?我在使postExcel返回时遇到问题。从laravel excel数组创建datatable

IM使用http://www.maatwebsite.nl/laravel-excel/docshttp://datatables.net/

这里是我的代码:

public function postExcel(Request $request) 
{ 
    if($request->ajax()) { 

     if ($request->hasFile('file')) 
     { 
      $file = $request->file('file'); 
      $filename = $file->getClientOriginalName(); 

      //$file->getRealPath(); 
      $path = $file->move(public_path(), $filename); 

      \Excel::load($path, function($reader){ 

       $results = $reader->toArray(); 

      }); 
      print_r($results);die(); 
      $json = array(
       'status' => 'ok', 
       'array' => $results 
      ); 
     } 
     return Response::json($json); 
    } 
} 

,这是视图,JS那里我需要生成表:

$(document).on("change", "#file-input", function() { 
    var formData = new FormData($('form.upload-excel')[0]); 

    $.ajax({ 
     type: 'POST', 
     data: formData, 
     url: '/Excel/public/upload-excel', 
     cache: false, 
     contentType: false, 
     processData: false, 
     success: function(data){ 
      if(data.status === 'ok') { 
       console.log(data.array); 
       $('#table').DataTable({ 
        colReorder: true, 
       }); 
      } 
     } 
    }); 
}); 
+0

从'ajax'返回的数据看起来像什么? – jonmrich

回答

0

问题就迎刃而解了。它是:

  $data = \Excel::load($path)->toArray(); 

      $json = array(
       'status' => 'ok', 
       'data' => $data 
      );