Laravel-Excel 3.1 mit Laravel-Framework 6.2 und PHP 7.4Php

PHP-Programmierer chatten hier
Anonymous
 Laravel-Excel 3.1 mit Laravel-Framework 6.2 und PHP 7.4

Post by Anonymous »

Ich habe ein Problem mit Laravel-Excel 3.1 Nachdem ich die Laravel-Version und die PHP-Version aktualisiert habe. Danach bekam ich ein Problem mit Excel-Export, die neue Version (3.1) nicht unterstützt, bevor ich 2.1 verwende. Kann jemand helfen, meinen aktuell oben genannten Code zu aktualisieren? Bitte! und danke Leute! < /p>

Code: Select all

private function export_customer_invoice_report($customer_invs)
{
$data_array = array([
'Issue Date',
'Purchase Order Invoice',
'Bag ID',
'SKU',
'Color-Size',
'QTY',
'Sale Price',
'Additional Discount',
'Actual Sale Price',
'Delivery Fee',
'Customer Balance',
'Pre-Paid Amount',
'Supplier Actual Price',
'Remark']);

foreach ($customer_invs as $key => $value) {
$product_variants = Helper::get_pro_option_id($value->order_item_id);
$doubleSpace = strip_tags($product_variants);
$singleSpace_product_variants = str_replace("\n ", "", $doubleSpace);
$issue_date = Helper::dateTimeDisplay($value->created_at);
$additional_dis = $value->additional_discount_percent ? $value->additional_discount_percent : 0;
$sale_price_after_disc = ($value->unit_price * $value->count_item) - ((($value->unit_price * $value->count_item) * $value->discount_percent) / 100);
$total_sale_price_discount_addit = ($sale_price_after_disc * $value->additional_discount_percent) / 100;
$actual_sale_price = $sale_price_after_disc - $total_sale_price_discount_addit;

// check if supplier actual price is zero, take from supplier price instead
$supplier_actual_price = $value->supplier_order_actual_price > 0
? $value->supplier_order_actual_price
: $value->supplier_price;
$data_list = array(
$issue_date,
$value->invoice_id,
$value->bag_id,
OrderItem::getProductSKU($value->order_item_id),
$singleSpace_product_variants,
$value->count_item,
'$' . number_format($sale_price_after_disc, 2),
'%' . $additional_dis,
'$' . number_format($actual_sale_price, 2),
'$' . number_format($value->delivery_price, 2),
'$' . number_format($value->customer_balance, 2),
'$' . number_format($value->prepaid_amount, 2),
'¥' . number_format($supplier_actual_price, 2),
$value->note,
);
array_push($data_array, $data_list);
}

Excel::create('customer_invoice_report', function ($excel) use ($data_array) {
// Set the title
$excel->setTitle('no title');
$excel->setCreator('no no creator')->setCompany('no company');
$excel->setDescription('report file');
$excel->sheet('sheet1', function ($sheet) use ($data_array) {
$sheet->cells('A1:M1', function ($cells) {
$cells->setBackground('#e7e7e7');
$cells->setFontWeight('bold');
});
$row = 1;
$startRow = -1;
$previousKey = '';

foreach ($data_array as $index => $value) {
if ($startRow == -1) {
$startRow = $row;
$previousKey = $value[2];
}
$sheet->setCellValue('A' . $row, $value[0]);
$sheet->setCellValue('B' . $row, $value[1]);
$sheet->setCellValue('C' . $row, $value[2]);
$sheet->setCellValue('D' . $row, $value[3]);
$sheet->setCellValue('E' . $row, $value[4]);
$sheet->setCellValue('F' . $row, $value[5]);
$sheet->setCellValue('G' . $row, $value[6]);
$sheet->setCellValue('H' . $row, $value[7]);
$sheet->setCellValue('I' . $row, $value[8]);
$sheet->setCellValue('J' . $row, $value[9]);
$sheet->setCellValue('K' . $row, $value[10]);
$sheet->setCellValue('L' . $row, $value[11]);
$sheet->setCellValue('M' .  $row, $value[12]);
$sheet->setCellValue('N' . $row, $value[13]);
$nextKey = isset($data_array[$index + 1]) ? $data_array[$index + 1][2] : null;

if ($row >= $startRow && (($previousKey != $nextKey) || ($nextKey == null))) {
$cellToMergeJ = 'J' . $startRow . ':J' . $row;
$cellToMergeK = 'K' . $startRow . ':K' . $row;
$cellToMergeL = 'L' . $startRow . ':L' . $row;
$sheet->mergeCells($cellToMergeJ);
$sheet->mergeCells($cellToMergeK);
$sheet->mergeCells($cellToMergeL);
$sheet->cells('J' . $startRow . ':J' . $row, function ($cellsJ) {$cellsJ->setValignment('center');});
$sheet->cells('K' . $startRow . ':K' . $row, function ($cellsK) {$cellsK->setValignment('center');});
$sheet->cells('L' . $startRow . ':L' . $row, function ($cellsL) {$cellsL->setValignment('center');});
$startRow = -1;
}
$row++;
}
});
})->download('xlsx');
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post