'maatwebsite/excel Export Multiple Sheet in Laravel
i am using WithMultipleSheets and FromView for exporting excel sheet worksheet 1 have a sales order and worksheet 2 have orders list sales order records are fetch correctly but orders record are fetch less then 35 for example original record is 85 but in sheet only 25 exported here is my code for reference
app/exports/reportexcel.php
namespace App\Exports;
use Maatwebsite\Excel\Concerns\FromArray;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\FromQuery;
use Maatwebsite\Excel\Concerns\FromView;
use Maatwebsite\Excel\Concerns\WithMultipleSheets;
use Maatwebsite\Excel\Excel;
class ReportExport_Multiple implements WithMultipleSheets
{
public function sheets(): array
{
if (session_status() === PHP_SESSION_NONE) { session_start(); }
return [
new SalesReportExport_Multiple(),
new OrderReportExport_Multiple(),
];
}
}
app/exports/Orderreport.php
namespace App\Exports;
use Maatwebsite\Excel\Concerns\FromArray;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\FromQuery;
use Maatwebsite\Excel\Concerns\FromView;
use Maatwebsite\Excel\Concerns\WithMultipleSheets;
use Illuminate\Contracts\View\View;
use Illuminate\Database\Query\Builder;
use Illuminate\Support\Collection;
use Maatwebsite\Excel\Excel;
use DB;
class OrderReportExport_Multiple implements FromView
{
public function view(): View
{
$OrderData = DB::connection('mysql2')->select("
SELECT oi.order_id,o.post_date,oi.order_item_id,oi.order_item_name,
CASE o.post_status
WHEN 'wc-processing' THEN 'Processing'
WHEN 'wc-completed' THEN 'Completed'
ELSE 'Unknown'
END AS 'PurchaseStatus',
MAX( CASE WHEN pm.meta_key = '_order_total' AND o.ID = pm.post_id THEN pm.meta_value END ) AS 'OrderTotal',
MAX( CASE WHEN pm.meta_key = '_payment_method' AND o.ID = pm.post_id THEN pm.meta_value END ) AS 'PaymentMethod',
MAX( CASE WHEN pm.meta_key = '_paid_date' AND o.ID = pm.post_id THEN pm.meta_value END ) AS 'PaidDate',
MAX( CASE WHEN pm.meta_key = '_billing_first_name' and o.ID = pm.post_id THEN pm.meta_value END ) as FirstName,
MAX( CASE WHEN pm.meta_key = '_billing_last_name' and o.ID = pm.post_id THEN pm.meta_value END ) as LastName,
MAX( CASE WHEN pm.meta_key = '_billing_email' and o.ID = pm.post_id THEN pm.meta_value END ) as StudentEmail,
MAX( CASE WHEN pm.meta_key = '_billing_phone' and o.ID = pm.post_id THEN pm.meta_value END ) as StudentPhone,
( SELECT GROUP_CONCAT(CONCAT( IF(m.meta_value IS NOT NULL,m.meta_value,'---') ))
FROM wp_3_woocommerce_order_items i
LEFT JOIN wp_3_woocommerce_order_itemmeta m ON i.order_item_id = m.order_item_id AND meta_key = '_qty'
WHERE i.order_id = o.ID AND i.order_item_type = 'line_item') AS 'Qty',
( SELECT GROUP_CONCAT(CONCAT( IF(m.meta_value IS NOT NULL,m.meta_value,'---') ))
FROM wp_3_woocommerce_order_items i
LEFT JOIN wp_3_woocommerce_order_itemmeta m ON i.order_item_id = m.order_item_id AND meta_key = '_line_total'
WHERE i.order_id = o.ID AND i.order_item_type = 'line_item') AS 'LineTotal'
, ( SELECT GROUP_CONCAT(CONCAT( IF(m.meta_value IS NOT NULL,m.meta_value,'---') ))
FROM wp_3_woocommerce_order_items i
LEFT JOIN wp_3_woocommerce_order_itemmeta m ON i.order_item_id = m.order_item_id AND meta_key = 'size'
WHERE i.order_id = o.ID AND i.order_item_type = 'line_item') AS 'Sizes'
, ( SELECT GROUP_CONCAT(CONCAT( IF(m.meta_value IS NOT NULL,m.meta_value,'---') ))
FROM wp_3_woocommerce_order_items i
LEFT JOIN wp_3_woocommerce_order_itemmeta m ON i.order_item_id = m.order_item_id AND meta_key = 'back_name'
WHERE i.order_id = o.ID AND i.order_item_type = 'line_item') AS 'BackName'
, ( SELECT GROUP_CONCAT(CONCAT( IF(m.meta_value IS NOT NULL,m.meta_value,'---') ))
FROM wp_3_woocommerce_order_items i
LEFT JOIN wp_3_woocommerce_order_itemmeta m ON i.order_item_id = m.order_item_id AND meta_key = 'nick_name'
WHERE i.order_id = o.ID AND i.order_item_type = 'line_item') AS 'NickName'
, ( SELECT GROUP_CONCAT(CONCAT( IF(m.meta_value IS NOT NULL,m.meta_value,'---') ))
FROM wp_3_woocommerce_order_items i
LEFT JOIN wp_3_woocommerce_order_itemmeta m ON i.order_item_id = m.order_item_id AND meta_key = 'front_name'
WHERE i.order_id = o.ID AND i.order_item_type = 'line_item') AS 'FrontName'
, ( SELECT GROUP_CONCAT(CONCAT( IF(m.meta_value IS NOT NULL,m.meta_value,'---') ))
FROM wp_3_woocommerce_order_items i
LEFT JOIN wp_3_woocommerce_order_itemmeta m ON i.order_item_id = m.order_item_id AND meta_key = 'back-number'
WHERE i.order_id = o.ID AND i.order_item_type = 'line_item') AS 'BackNumber'
, ( SELECT GROUP_CONCAT(CONCAT( IF(m.meta_value IS NOT NULL,m.meta_value,'---') ))
FROM wp_3_woocommerce_order_items i
LEFT JOIN wp_3_woocommerce_order_itemmeta m ON i.order_item_id = m.order_item_id AND meta_key = 'name'
WHERE i.order_id = o.ID AND i.order_item_type = 'line_item') AS 'Name'
, ( SELECT GROUP_CONCAT(CONCAT( IF(m.meta_value IS NOT NULL,m.meta_value,'---') ))
FROM wp_3_woocommerce_order_items i
LEFT JOIN wp_3_woocommerce_order_itemmeta m ON i.order_item_id = m.order_item_id AND meta_key = 'number'
WHERE i.order_id = o.ID AND i.order_item_type = 'line_item') AS 'Number'
, ( SELECT GROUP_CONCAT(CONCAT( IF(m.meta_value IS NOT NULL,m.meta_value,'---') ))
FROM wp_3_woocommerce_order_items i
LEFT JOIN wp_3_woocommerce_order_itemmeta m ON i.order_item_id = m.order_item_id AND meta_key = 'namenotreq'
WHERE i.order_id = o.ID AND i.order_item_type = 'line_item') AS 'NameNotReq'
, ( SELECT GROUP_CONCAT(CONCAT( IF(m.meta_value IS NOT NULL,m.meta_value,'---') ))
FROM wp_3_woocommerce_order_items i
LEFT JOIN wp_3_woocommerce_order_itemmeta m ON i.order_item_id = m.order_item_id AND meta_key = 'numbernotreq'
WHERE i.order_id = o.ID AND i.order_item_type = 'line_item') AS 'NumberNotReq'
, ( SELECT GROUP_CONCAT(CONCAT( IF(m.meta_value IS NOT NULL,m.meta_value,'---') ))
FROM wp_3_woocommerce_order_items i
LEFT JOIN wp_3_woocommerce_order_itemmeta m ON i.order_item_id = m.order_item_id AND meta_key = 'select_embroidery'
WHERE i.order_id = o.ID AND i.order_item_type = 'line_item') AS 'SelectEmbroidery'
, ( SELECT GROUP_CONCAT(CONCAT( IF(m.meta_value IS NOT NULL,m.meta_value,'---') ))
FROM wp_3_woocommerce_order_items i
LEFT JOIN wp_3_woocommerce_order_itemmeta m ON i.order_item_id = m.order_item_id AND meta_key = 'select_thermo_flim'
WHERE i.order_id = o.ID AND i.order_item_type = 'line_item') AS 'SelectThermoFlim'
, ( SELECT GROUP_CONCAT(CONCAT( IF(m.meta_value IS NOT NULL,m.meta_value,'---') ))
FROM wp_3_woocommerce_order_items i
LEFT JOIN wp_3_woocommerce_order_itemmeta m ON i.order_item_id = m.order_item_id AND meta_key = 'back_name_not_req'
WHERE i.order_id = o.ID AND i.order_item_type = 'line_item') AS 'BackNameNotReq'
, ( SELECT GROUP_CONCAT(CONCAT( IF(m.meta_value IS NOT NULL,m.meta_value,'---') ))
FROM wp_3_woocommerce_order_items i
LEFT JOIN wp_3_woocommerce_order_itemmeta m ON i.order_item_id = m.order_item_id AND meta_key = 'front_name_not_req'
WHERE i.order_id = o.ID AND i.order_item_type = 'line_item') AS 'FrontNameNotReq'
, ( SELECT GROUP_CONCAT(CONCAT( IF(m.meta_value IS NOT NULL,m.meta_value,'---') ))
FROM wp_3_woocommerce_order_items i
LEFT JOIN wp_3_woocommerce_order_itemmeta m ON i.order_item_id = m.order_item_id AND meta_key = 'select_back_text'
WHERE i.order_id = o.ID AND i.order_item_type = 'line_item') AS 'BackText'
FROM wp_3_term_relationships tr
INNER JOIN wp_3_term_taxonomy tt
ON tr.term_taxonomy_id = tt.term_taxonomy_id
INNER JOIN wp_3_terms t
ON tt.term_id = t.term_id
INNER JOIN wp_3_woocommerce_order_itemmeta oim
ON tr.object_id = oim.meta_value
INNER JOIN wp_3_woocommerce_order_items oi
ON oim.order_item_id = oi.order_item_id
INNER JOIN wp_3_posts as o
ON oi.order_id = o.ID
INNER JOIN wp_3_postmeta AS pm ON o.ID = pm.post_id
WHERE tt.taxonomy = 'product_cat'
".$allOrders."
AND oim.meta_key = '_product_id'
AND o.post_type = 'shop_order'
AND o.post_status IN ('wc-completed','wc-processing')
AND o.post_date BETWEEN '".$startDate."' AND '".$endDate."'
GROUP BY oim.meta_id Order By oi.order_id DESC, oi.order_item_id ASC
");
return view('ExportData.OrderReportExport',[ 'OrderData' => $OrderData]);
}
}
resource/view/exportdata/orderexport.blade.php
foreach ($OrderData as $key => $OrdersData) { table body for display record in excel sheet }
query return 85 data
but in excel show only 25
only issue in orders list sales list are correct
need to store all data which fetch from query
run excel export from here
Excel::store(new ReportExport_Multiple, $filePath, 's3');
please help to for issue
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
