'Export Excel with 1Million records in laravel using yajra Datatable when serverSide is true
I want to download excel using yajra Datatable
Here is my blade file code:
var oTable = $('#datatable_rows').DataTable({
"dom": '<"top"if>rt<"bottom"lBp><"clear">',
processing: true,
serverSide: true,
buttons : [{
extend : 'excel',
text : '<i class="flaticon2-download"></i>',
title : '',
className: "btn export",
filename : '13xyz-export',
exportOptions : {
page : 'all',
}
}],
searchable: true,
scrollX: true,
bSort: false,
pageLength: 500,
lengthMenu: [10, 25, 50, 100, 500, 10000],
ajax: {
url:'{{ route('xyz.index') }}',
data: function(d) {
d.client_name=$('#client_name').val(),
d.orderby=$('#hidden_field').val(),
d.asc_desc=$('#asc_desc').val()
}
},
ordering:false,
columns: [
{
searching: true,
data: "xyz0"
},
{
searching: true,
data: "xyz1"
},
{
searching: true,
data: "xyz2"
},
{
searching: true,
data: "xyz3"
},
{
searching: true,
"data": 'action',
},
]
});
Controller
if ($request->ajax())
{
$query = Xyz::select('*')->orderby($request->orderby , $asc_desc)->latest();
return Datatables::of($query)
->addColumn('action', function ($row) {
$btn = view('layout.editAction')->with(['ID' => $row->ID, 'route' => 'xuz', 'per_value'=>'myxyz'])->render();
return $btn;
})
->addColumn('checkbox', function ($row) {
$chk = view('layout.checkbox')->with(['ID' => $row->ID])->render();
return $chk;
})
->setRowClass(function () {
return 'row-move';
})
->setRowId(function ($row) {
return 'row-' . $row->ID;
})
->rawColumns(['action','checkbox'])
->make(true);
}
return view($this->view . '.index');
Here if I make serverSide as false it will go to error as 500 request time out. and if i am using serverSide as true it gives all data immediately but when i export file in excel it only gives the current page records.
When I press excel button I want to download all the records
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
