рдЖрдпрд╛рдд EXCEL PHP7.4 рдореЗрдВ рдЕрдкрд╡рд╛рдж рд╣реЛрддрд╛ рд╣реИ,
рдЕрдкрд╡рд╛рдж-> рд╕рдВрджреЗрд╢ () рд╣реИ:
рдкреНрд░рдХрд╛рд░ int рдХреЗ рдорд╛рди рдкрд░ рд╕рд░рдгреА рдСрдлрд╝рд╕реЗрдЯ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ред
рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░:
рдПрдХ xlsx рдлрд╝рд╛рдЗрд▓ рдЖрдпрд╛рдд рдХрд░реЗрдВ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ php72w рдкрд░ рдХреЛрдб рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдБ
рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реНрдпрд╡рд╣рд╛рд░:
рдЬрдм рдореИрдВ рдПрдХ рдПрдХреНрд╕реЗрд▓ рдЖрдпрд╛рдд рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореИрдВ рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рдкрд░рд┐рд╕реНрдерд┐рддрд┐ рдХреЛ php7.2 рд╕реЗ php7.4 рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣реБрдЖ, рдКрдкрд░ рдХреА рддрд░рд╣ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рдЕрдЧрд░ рдореИрдВ php7.4 рд╕реЗ php7.2 рдкрд░ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рдлрд┐рд░ рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рд╣реЛрдЧрд╛ред
$extension=$request->file()['file']->getClientOriginalExtension();
$extension[0] = strtoupper($extension[0]);
Excel::import(new RejectedImport(), $request->file()['file']->path(),null,$extension);
рдФрд░ рдЖрдпрд╛рдд рд╡рд░реНрдЧ рдореЗрдВ рдХреНрдпрд╛ рд╣реИ:
<?php
namespace App\Imports;
use App\Commodity;
use Illuminate\Support\Collection;
use Maatwebsite\Excel\Concerns\ToCollection;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
class CommodityImport implements ToCollection, WithHeadingRow
{
protected $isOverride=false;
public function __construct($isOverride)
{
if($isOverride=='1')
$this->isOverride=true;
}
/**
* <strong i="26">@param</strong> Collection $collections
*/
public function collection(Collection $collections)
{
foreach ($collections as $row)
{
$barcode = $row['barcode'] ?? $row['BARCODE'] ?? $row['Barcode'];
if(!$barcode)continue;
$name = $row['name'] ?? $row['NAME'] ?? $row['Name'] ?? '';
$sku = $row['sku'] ?? $row['SKU'] ?? $row['Sku'] ?? '';
$owner = $row['owner'] ?? $row['owner_name'] ?? $row['OWNER'] ?? $row['Owner'] ?? '';
$commodity=Commodity::where('barcode',$row['barcode'])->first();
if($commodity){
if($this->isOverride){
$name?$commodity['name']= $name:false;
$sku?$commodity['sku']= $sku:false;
$owner?$commodity['owner_name']= $owner:false;
$commodity->update();
}
}else{
Commodity::create([
'name' => $name,
'sku' => $sku,
'owner_name' => $owner,
'barcode' => $barcode,
]);
}
}
}
}
рдЯрд┐рдХрдЯ рдЬрдорд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдЬрд╛рдирдХрд╛рд░реА рдЕрдзреВрд░реА рд╣реИред рд╣рдореЗрдВ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рдЖрдк рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдХреИрд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░рдирд╛ рд╣реИред рдХреГрдкрдпрд╛ рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдЙрдард╛ рд╕рдХреЗрдВ, рдХреГрдкрдпрд╛ (https://github.com/Maatwebsite/Laravel-Excel/blob/3.1/.github/ISSUE_TEMPLATE.md) рджреЗрдЦреЗрдВ рдФрд░ рд▓рд╛рдкрддрд╛ рдЬрд╛рдирдХрд╛рд░реА рдЬреЛрдбрд╝реЗрдВред рдЗрд╕ рдЯрд┐рдХрдЯ рдХреА рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЛ рдмрд╣реБрдд рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреГрдкрдпрд╛ рдЬрд╛рдВрдЪрдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ (https://laravel-excel.maatwebsite.nl/3.1/getting-started/contributing.html) рдФрд░ рджреЛрдмрд╛рд░рд╛ рдЬрд╛рдВрдЪ рд▓реЗрдВ рдХрд┐ рдЖрдкрдиреЗ рдЗрд╢реНрдпреВ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рднрд░рд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗред рдпрд╣ рд╣рдореЗрдВ рдЖрдкрдХрд╛ рдЯрд┐рдХрдЯ рдЕрдзрд┐рдХ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рд▓реЗрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкрд╛рд▓рди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдореБрджреНрджреЛрдВ рдХреЛ рдЕрдиреНрдп рдореБрджреНрджреЛрдВ рдкрд░ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреА рдЬрд╛рдПрдЧреАред
рдХреНрдпрд╛ рдЖрдк рдереЛрдбрд╝рд╛ рдФрд░ рд╕реНрдЯреИрдХрдЯреНрд░реИрдХ рджрд┐рдЦрд╛ рд╕рдХрддреЗ рд╣реИрдВ, PHP7.4 рдкрд░ рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдореИрдВ рдмрдЧ рдХреА рдкреБрд╖реНрдЯрд┐ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рд╢рд╛рдпрдж рдпрд╣ рдЖрдкрдХреЗ рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ рдХреБрдЫ рд╣реИ?
рд╣рд╛рдп @patrickbrouwers рдкреИрдХреЗрдЬ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВ рдЗрд╕рдХрд╛ рдмрд╣реБрдд рдмрдбрд╝рд╛ рдкреНрд░рд╢рдВрд╕рдХ рд╣реВрдВ!
рдореБрдЭреЗ рдЙрдиреНрдирдпрди рдХреЗ рдмрд╛рдж рдПрдХ рд╕рдорд╛рди рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рд░рд╣реА рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдПрдХ рдирд┐рд░реНрдпрд╛рдд рдХреЗ рджреМрд░рд╛рди рд╣реИ, рдФрд░ рд╕реНрдЯреИрдХрдЯреНрд░реЗрд╕ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ phpsreadsheet рдХреЗ рд╕рд╛рде рд╣реИ, рд▓рд╛рд░рд╡реЗрд▓-рдПрдХреНрд╕реЗрд▓ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди Google рдореБрдЭреЗ рдпрд╣рд╛рдВ рд▓рд╛рдпрд╛ред
рдпрд╣рд╛рдБ рд╕реНрдЯреИрдХрдЯреНрд░реЗрд╕ рд╣реИ:
#0 /vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/DefaultValueBinder.php(56): Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError()
#1 /vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/DefaultValueBinder.php(34): PhpOffice\\PhpSpreadsheet\\Cell\\DefaultValueBinder::dataTypeForValue()
#2 /vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/Cell.php(184): PhpOffice\\PhpSpreadsheet\\Cell\\DefaultValueBinder->bindValue()
#3 /vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/Worksheet.php(2510): PhpOffice\\PhpSpreadsheet\\Cell\\Cell->setValue()
#4 /vendor/maatwebsite/excel/src/Sheet.php(402): PhpOffice\\PhpSpreadsheet\\Worksheet\\Worksheet->fromArray()
#5 /vendor/maatwebsite/excel/src/Sheet.php(502): Maatwebsite\\Excel\\Sheet->append()
#6 /vendor/maatwebsite/excel/src/Sheet.php(368): Maatwebsite\\Excel\\Sheet->appendRows()
#7 /vendor/maatwebsite/excel/src/Sheet.php(195): Maatwebsite\\Excel\\Sheet->fromCollection()
#8 /vendor/maatwebsite/excel/src/Writer.php(73): Maatwebsite\\Excel\\Sheet->export()
#9 /vendor/maatwebsite/excel/src/Excel.php(176): Maatwebsite\\Excel\\Writer->export()
#10 /vendor/maatwebsite/excel/src/Excel.php(97): Maatwebsite\\Excel\\Excel->export()
#11 /app/Console/Commands/EmailCardRequestList.php(89): Maatwebsite\\Excel\\Excel->store()
PhpSpreadsheet рдореЗрдВ рдлрд┐рдХреНрд╕реНрдб, рджреЗрдЦреЗрдВ https://github.com/PHPOffice/PhpSpreadsheet/issues/1300
PHPExcel рдлрд╝рд╛рдЗрд▓ "DefaultValueBinder.php" рдореЗрдВ, рдЗрд╕ рд▓рд╛рдЗрди рдХреЛ 82 рдмрджрд▓реЗрдВ:
} рдФрд░рд┐рдл ($pValue[0] === '=' && strlen($pValue) > 1) {
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рд╕рд╛рде:
} рдФрд░рд┐рдлрд╝ (0 === strpos($pValue, '=') && strlen($pValue) > 1) {
рдпрд╣ "рдкреНрд░рдХрд╛рд░ int рдХреЗ рдорд╛рди рдкрд░ рд╕рд░рдгреА рдСрдлрд╝рд╕реЗрдЯ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕" рддреНрд░реБрдЯрд┐ рдХреЛ рдареАрдХ рдХрд░реЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ "рдХрд░реНрд▓реА рдмреНрд░реЗрд╕реЗрд╕ рдХреЗ рд╕рд╛рде рдРрд░реЗ рдФрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдСрдлрд╝рд╕реЗрдЯ рдПрдХреНрд╕реЗрд╕ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ" рддреНрд░реБрдЯрд┐ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП PHPExcel рдХреЛрдб рдореЗрдВ рдШреБрдВрдШрд░рд╛рд▓реЗ рдмреНрд░реЗрд╕рд┐рдЬрд╝ рдХреЗ рд▓рд┐рдП рдПрдХ рдЦреЛрдЬ рдФрд░ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЬреЛ PHP рдпреВрдЧреНрд░реЗрдб рдХреЛ 7.4 рдкрд░ рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдмрд╕ рдЙрдиреНрд╣реЗрдВ рд╣рд░ рдЬрдЧрд╣ "[" рдФрд░ "]" рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдФрд░ рд╕рдм рдХреБрдЫ рдлрд┐рд░ рд╕реЗ рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред
DefaultValueBinder.php рд╡рд┐рдХреНрд░реЗрддрд╛ рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рдЕрдВрджрд░? рдпрд╛ рдпрд╣ рдХрд╣рд╛рдБ рд╣реИ? рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред
DefaultValueBinder.php рд╡рд┐рдХреНрд░реЗрддрд╛ рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рдЕрдВрджрд░? рдпрд╛ рдпрд╣ рдХрд╣рд╛рдБ рд╣реИ? рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред
рдореИрдВ рдХреНрд╖рдорд╛рдкреНрд░рд╛рд░реНрдереА рд╣реВрдВред рдореБрдЭреЗ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдореЗрд░реА рд╕реНрдерд╛рдкрдирд╛ рдореЗрдВ, рдпрд╣ рдЗрд╕ рд╕реНрдерд╛рди рдкрд░ PHPExcel рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИ: PHPExcel\Cell\DefaultValueBinder.php
рдпрд╣ рдЖрдкрдХреА рд╕реНрдерд╛рдкрдирд╛ рд╕реЗ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЗрд╕реЗ рдЕрдкрдиреЗ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдЦреЛрдЬрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдореЗрд░реЗ рд╡рд┐рдЪрд╛рд░ рд╕реЗ рд▓рд╛рдЗрди 62 рд╣реИ, 82 рдирд╣реАрдВ рдореЗрд░реЗ рджреЛрд╕реНрдд! рдФрд░ рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рддрдирд╛рд╡ рд╕реЗ рдмрд╛рд╣рд░ рд╣реВрдВред рдореБрдЭреЗ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рддреНрд░реБрдЯрд┐ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ: рддреНрд░реБрдЯрд┐ рддреНрд░реБрдЯрд┐: рдкреНрд░рдХрд╛рд░ int '/Cell/DefaultValueBinder. php:56 '. рдореБрдЭреЗ рдмрдбрд╝реА рдЙрдореНрдореАрджреЗрдВ рд╣реИрдВ!
рдпрд╣ рдкрде рд╣реИ: рддреГрддреАрдп_рдкрдХреНрд╖/PHPExcel/рдХрдХреНрд╖рд╛рдПрдВ/PHPExcel/рд╕реЗрд▓/DefaultValueBinder.php
рдпрд╣рд╛рдВ рдерд░реНрдб рдкрд╛рд░реНрдЯреА рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдЕрдкрдирд╛ PHPExcel рдлреЛрд▓реНрдбрд░ рдХрд╣рд╛рдВ рд░рдЦрд╛ рд╣реИ
рдЕрдм === '=' рдЦреЛрдЬреЗрдВ рдФрд░ рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдореЗрд▓ рдЦрд╛рдиреЗ рд╡рд╛рд▓реА рд░реЗрдЦрд╛ рд╣реИ рддреЛ рдЙрд╕ рд╡рд┐рд╢реЗрд╖ рдХреЗ рд╕рд╛рде рдмрджрд▓реЗрдВ
0 === рд╕реНрдЯреНрд░реЙрдкреНрд╕($pValue, '=')
рдмрд╛рдХреА рддреЛ рд╡рд╣реА рд╣реЛрдЧрд╛ред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдерд╛
$ pValue [0] === '='
PHPExcel рдлрд╝рд╛рдЗрд▓ "DefaultValueBinder.php" рдореЗрдВ, рдЗрд╕ рд▓рд╛рдЗрди рдХреЛ 82 рдмрджрд▓реЗрдВ:
} рдФрд░рд┐рдл ($pValue[0] === '=' && strlen($pValue) > 1) {
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рд╕рд╛рде:
} рдФрд░рд┐рдлрд╝ (0 === strpos($pValue, '=') && strlen($pValue) > 1) {
рдпрд╣ "рдкреНрд░рдХрд╛рд░ int рдХреЗ рдорд╛рди рдкрд░ рд╕рд░рдгреА рдСрдлрд╝рд╕реЗрдЯ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕" рддреНрд░реБрдЯрд┐ рдХреЛ рдареАрдХ рдХрд░реЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ "рдХрд░реНрд▓реА рдмреНрд░реЗрд╕реЗрд╕ рдХреЗ рд╕рд╛рде рдРрд░реЗ рдФрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдСрдлрд╝рд╕реЗрдЯ рдПрдХреНрд╕реЗрд╕ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ" рддреНрд░реБрдЯрд┐ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП PHPExcel рдХреЛрдб рдореЗрдВ рдШреБрдВрдШрд░рд╛рд▓реЗ рдмреНрд░реЗрд╕рд┐рдЬрд╝ рдХреЗ рд▓рд┐рдП рдПрдХ рдЦреЛрдЬ рдФрд░ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЬреЛ PHP рдпреВрдЧреНрд░реЗрдб рдХреЛ 7.4 рдкрд░ рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдмрд╕ рдЙрдиреНрд╣реЗрдВ рд╣рд░ рдЬрдЧрд╣ "[" рдФрд░ "]" рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдФрд░ рд╕рдм рдХреБрдЫ рдлрд┐рд░ рд╕реЗ рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред
рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ! рддреБрдореНрд╣реЗрдВ рдкреНрдпрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВ!
PHPExcel рдлрд╝рд╛рдЗрд▓ "DefaultValueBinder.php" рдореЗрдВ, рдЗрд╕ рд▓рд╛рдЗрди рдХреЛ 82 рдмрджрд▓реЗрдВ:
} рдФрд░рд┐рдл ($pValue[0] === '=' && strlen($pValue) > 1) {
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рд╕рд╛рде:
} рдФрд░рд┐рдлрд╝ (0 === strpos($pValue, '=') && strlen($pValue) > 1) {
рдпрд╣ "рдкреНрд░рдХрд╛рд░ int рдХреЗ рдорд╛рди рдкрд░ рд╕рд░рдгреА рдСрдлрд╝рд╕реЗрдЯ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕" рддреНрд░реБрдЯрд┐ рдХреЛ рдареАрдХ рдХрд░реЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ "рдХрд░реНрд▓реА рдмреНрд░реЗрд╕реЗрд╕ рдХреЗ рд╕рд╛рде рдРрд░реЗ рдФрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдСрдлрд╝рд╕реЗрдЯ рдПрдХреНрд╕реЗрд╕ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ" рддреНрд░реБрдЯрд┐ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП PHPExcel рдХреЛрдб рдореЗрдВ рдШреБрдВрдШрд░рд╛рд▓реЗ рдмреНрд░реЗрд╕рд┐рдЬрд╝ рдХреЗ рд▓рд┐рдП рдПрдХ рдЦреЛрдЬ рдФрд░ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЬреЛ PHP рдпреВрдЧреНрд░реЗрдб рдХреЛ 7.4 рдкрд░ рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдмрд╕ рдЙрдиреНрд╣реЗрдВ рд╣рд░ рдЬрдЧрд╣ "[" рдФрд░ "]" рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдФрд░ рд╕рдм рдХреБрдЫ рдлрд┐рд░ рд╕реЗ рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред
рдЬрдм рдореИрдВ PHP 7.3 рдореЗрдВ рд▓рдЧрднрдЧ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд░ рд░рд╣рд╛ рдерд╛, рдзрдиреНрдпрд╡рд╛рдж рдпрд╛рд░ рдЗрд╕рд╕реЗ рдореБрдЭреЗ рдорджрдж рдорд┐рд▓реА
PHP 7.4.3 рдФрд░ рдореИрдЯрд╡реЗрдмрд╕рд╛рдЗрдЯ/рдПрдХреНрд╕реЗрд▓ рд╕рдВрд╕реНрдХрд░рдг 2.1 рдХреЗ рд╕рд╛рде рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░?
рдЖрдкрдХреЛ рдкрджрд╛рд╡рдирдд рдХрд┐рдП рдЧрдП phpexcel рдкреИрдХреЗрдЬ рдХреЛ рдХрд╛рдВрдЯрд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЦреБрдж рдХреЛ рдХрд╛рдВрдЯрд╛ рдмрдирд╛рдП рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ред
} elseif (0 === strpos($pValue, '=') && strlen($pValue) > 1) {
рдмреВрд▓ рдХреЗ рд╕реНрдЯреНрд░реЙрдкреНрд╕, рд░реИрд▓реА?
рдмрд╕ рдЗрд╕ рдХреЛрдб рдХреЛ is_bool рдФрд░ is_float . рдкрд░ рдЪреЗрдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдбрд╛рд▓реЗрдВ
рдХреЛрдб рдЗрд╕ рдкреИрдХреЗрдЬ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд┐рд░рд╛рд╕рдд PhpExcel рдХрд╛ рд╣реИ
PHPExcel рдлрд╝рд╛рдЗрд▓ "DefaultValueBinder.php" рдореЗрдВ, рдЗрд╕ рд▓рд╛рдЗрди рдХреЛ 82 рдмрджрд▓реЗрдВ:
} рдФрд░рд┐рдл ($pValue[0] === '=' && strlen($pValue) > 1) {
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рд╕рд╛рде:
} рдФрд░рд┐рдлрд╝ (0 === strpos($pValue, '=') && strlen($pValue) > 1) {
рдпрд╣ "рдкреНрд░рдХрд╛рд░ int рдХреЗ рдорд╛рди рдкрд░ рд╕рд░рдгреА рдСрдлрд╝рд╕реЗрдЯ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕" рддреНрд░реБрдЯрд┐ рдХреЛ рдареАрдХ рдХрд░реЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ "рдХрд░реНрд▓реА рдмреНрд░реЗрд╕реЗрд╕ рдХреЗ рд╕рд╛рде рдРрд░реЗ рдФрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдСрдлрд╝рд╕реЗрдЯ рдПрдХреНрд╕реЗрд╕ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ" рддреНрд░реБрдЯрд┐ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП PHPExcel рдХреЛрдб рдореЗрдВ рдШреБрдВрдШрд░рд╛рд▓реЗ рдмреНрд░реЗрд╕рд┐рдЬрд╝ рдХреЗ рд▓рд┐рдП рдПрдХ рдЦреЛрдЬ рдФрд░ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЬреЛ PHP рдпреВрдЧреНрд░реЗрдб рдХреЛ 7.4 рдкрд░ рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдмрд╕ рдЙрдиреНрд╣реЗрдВ рд╣рд░ рдЬрдЧрд╣ "[" рдФрд░ "]" рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдФрд░ рд╕рдм рдХреБрдЫ рдлрд┐рд░ рд╕реЗ рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред
рд╢реБрдХреНрд░рд┐рдпрд╛ рднрд╛рдИред рдкрд╕рдиреНрдж рдЖрдпрд╛ред рдереИрдВрдХреНрд╕ @burello <3
рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ 1.10 рд╕реЗ рдКрдкрд░ PHPOffice/PhpSpreadsheet
рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ - рдХреНрдпреЛрдВрдХрд┐ рддрдм рдпрд╣ рддреНрд░реБрдЯрд┐ рдкреИрдХреЗрдЬ рдХреЛрдбрдмреЗрд╕ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕рдВрдкрд╛рджрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдареАрдХ рдХрд░ рджреА рдЬрд╛рдПрдЧреАред рддреЛ рдореЗрд░реЗ рд▓рд┐рдП
composer require phpoffice/phpspreadsheet "^1.10"
рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛ред
рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рддреНрд░реБрдЯрд┐ рднреА рд╣реИ
рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдирдЬрд╛рди
PHPExcel рдлрд╝рд╛рдЗрд▓ "DefaultValueBinder.php" рдореЗрдВ, рдЗрд╕ рд▓рд╛рдЗрди рдХреЛ 82 рдмрджрд▓реЗрдВ:
} рдФрд░рд┐рдл ($pValue[0] === '=' && strlen($pValue) > 1) {
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рд╕рд╛рде:
} рдФрд░рд┐рдлрд╝ (0 === strpos($pValue, '=') && strlen($pValue) > 1) {
рдпрд╣ "рдкреНрд░рдХрд╛рд░ int рдХреЗ рдорд╛рди рдкрд░ рд╕рд░рдгреА рдСрдлрд╝рд╕реЗрдЯ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕" рддреНрд░реБрдЯрд┐ рдХреЛ рдареАрдХ рдХрд░реЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ "рдХрд░реНрд▓реА рдмреНрд░реЗрд╕реЗрд╕ рдХреЗ рд╕рд╛рде рдРрд░реЗ рдФрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдСрдлрд╝рд╕реЗрдЯ рдПрдХреНрд╕реЗрд╕ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ" рддреНрд░реБрдЯрд┐ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП PHPExcel рдХреЛрдб рдореЗрдВ рдШреБрдВрдШрд░рд╛рд▓реЗ рдмреНрд░реЗрд╕рд┐рдЬрд╝ рдХреЗ рд▓рд┐рдП рдПрдХ рдЦреЛрдЬ рдФрд░ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЬреЛ PHP рдпреВрдЧреНрд░реЗрдб рдХреЛ 7.4 рдкрд░ рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдмрд╕ рдЙрдиреНрд╣реЗрдВ рд╣рд░ рдЬрдЧрд╣ "[" рдФрд░ "]" рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдФрд░ рд╕рдм рдХреБрдЫ рдлрд┐рд░ рд╕реЗ рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред
рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж !! orderimportexport.ocmod рдУрдкрдирдХрд╛рд░реНрдЯ 3x
PHPExcel рдлрд╝рд╛рдЗрд▓ "DefaultValueBinder.php" рдореЗрдВ, рдЗрд╕ рд▓рд╛рдЗрди рдХреЛ 82 рдмрджрд▓реЗрдВ:
} рдФрд░рд┐рдл ($pValue[0] === '=' && strlen($pValue) > 1) {
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рд╕рд╛рде:
} рдФрд░рд┐рдлрд╝ (0 === strpos($pValue, '=') && strlen($pValue) > 1) {
рдпрд╣ "рдкреНрд░рдХрд╛рд░ int рдХреЗ рдорд╛рди рдкрд░ рд╕рд░рдгреА рдСрдлрд╝рд╕реЗрдЯ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕" рддреНрд░реБрдЯрд┐ рдХреЛ рдареАрдХ рдХрд░реЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ "рдХрд░реНрд▓реА рдмреНрд░реЗрд╕реЗрд╕ рдХреЗ рд╕рд╛рде рдРрд░реЗ рдФрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдСрдлрд╝рд╕реЗрдЯ рдПрдХреНрд╕реЗрд╕ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ" рддреНрд░реБрдЯрд┐ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП PHPExcel рдХреЛрдб рдореЗрдВ рдШреБрдВрдШрд░рд╛рд▓реЗ рдмреНрд░реЗрд╕рд┐рдЬрд╝ рдХреЗ рд▓рд┐рдП рдПрдХ рдЦреЛрдЬ рдФрд░ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЬреЛ PHP рдпреВрдЧреНрд░реЗрдб рдХреЛ 7.4 рдкрд░ рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдмрд╕ рдЙрдиреНрд╣реЗрдВ рд╣рд░ рдЬрдЧрд╣ "[" рдФрд░ "]" рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдФрд░ рд╕рдм рдХреБрдЫ рдлрд┐рд░ рд╕реЗ рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред
рдХрдорд╛рд▓ рд╣реИ, рдЖрдкрдиреЗ рдореБрдЭреЗ рдмрдЪрд╛ рд▓рд┐рдпрд╛ рднрд╛рдИ, рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж
рдЗрд╕ рдкрдВрдХреНрддрд┐ рдХреЛ рдмрджрд▓реЗрдВ 82:
} рдФрд░рд┐рдл ($pValue[0] === '=' && strlen($pValue) > 1) {
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рд╕рд╛рде:
} рдФрд░рд┐рдлрд╝ (0 === strpos($pValue, '=') && strlen($pValue) > 1) {
рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ ...
рдХреГрдкрдпрд╛ PhpSpreadsheet рдХреЗ рднреАрддрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдВ PhpSpreadsheet
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
PHPExcel рдлрд╝рд╛рдЗрд▓ "DefaultValueBinder.php" рдореЗрдВ, рдЗрд╕ рд▓рд╛рдЗрди рдХреЛ 82 рдмрджрд▓реЗрдВ:
} рдФрд░рд┐рдл ($pValue[0] === '=' && strlen($pValue) > 1) {
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рд╕рд╛рде:
} рдФрд░рд┐рдлрд╝ (0 === strpos($pValue, '=') && strlen($pValue) > 1) {
рдпрд╣ "рдкреНрд░рдХрд╛рд░ int рдХреЗ рдорд╛рди рдкрд░ рд╕рд░рдгреА рдСрдлрд╝рд╕реЗрдЯ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕" рддреНрд░реБрдЯрд┐ рдХреЛ рдареАрдХ рдХрд░реЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ "рдХрд░реНрд▓реА рдмреНрд░реЗрд╕реЗрд╕ рдХреЗ рд╕рд╛рде рдРрд░реЗ рдФрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдСрдлрд╝рд╕реЗрдЯ рдПрдХреНрд╕реЗрд╕ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ" рддреНрд░реБрдЯрд┐ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП PHPExcel рдХреЛрдб рдореЗрдВ рдШреБрдВрдШрд░рд╛рд▓реЗ рдмреНрд░реЗрд╕рд┐рдЬрд╝ рдХреЗ рд▓рд┐рдП рдПрдХ рдЦреЛрдЬ рдФрд░ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЬреЛ PHP рдпреВрдЧреНрд░реЗрдб рдХреЛ 7.4 рдкрд░ рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдмрд╕ рдЙрдиреНрд╣реЗрдВ рд╣рд░ рдЬрдЧрд╣ "[" рдФрд░ "]" рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдФрд░ рд╕рдм рдХреБрдЫ рдлрд┐рд░ рд╕реЗ рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред