Laravel-excel: [рдмрдЧ] рдЖрдпрд╛рдд рдПрдХреНрд╕реЗрд▓ PHP7.4 рдкрд░ рдЕрдкрд╡рд╛рдж рд╣реЛрддрд╛ рд╣реИ, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛: рдкреНрд░рдХрд╛рд░ int рдХреЗ рдорд╛рди рдкрд░ рд╕рд░рдгреА рдСрдлрд╝рд╕реЗрдЯ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 5 рджрд┐рд╕ре░ 2019  ┬╖  24рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: Maatwebsite/Laravel-Excel

рд╕рдВрд╕реНрдХрд░рдгреЛрдВ

  • PHP рд╕рдВрд╕реНрдХрд░рдг: PHP7.4 (Centos7 yum рд╕реНрдерд╛рдкрд┐рдд php74 рдлреЙрд░реНрдо remisrepo рд╕реНрдерд┐рд░ рд╕рдВрд╕реНрдХрд░рдг)
  • рд▓рд╛рд░рд╡реЗрд▓ рд╕рдВрд╕реНрдХрд░рдг: рд▓рд╛рд░рд╡реЗрд▓ рдлреНрд░реЗрдорд╡рд░реНрдХ 5.8.35
  • рдкреИрдХреЗрдЬ рд╕рдВрд╕реНрдХрд░рдг: рдореИрдЯрд╡реЗрдмрд╕рд╛рдЗрдЯ/рдПрдХреНрд╕реЗрд▓ 3.1.17

рд╡рд┐рд╡рд░рдг

рдЖрдпрд╛рдд 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,
                ]);
            }
        }
    }
}

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

PHPExcel рдлрд╝рд╛рдЗрд▓ "DefaultValueBinder.php" рдореЗрдВ, рдЗрд╕ рд▓рд╛рдЗрди рдХреЛ 82 рдмрджрд▓реЗрдВ:
} рдФрд░рд┐рдл ($pValue[0] === '=' && strlen($pValue) > 1) {
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рд╕рд╛рде:
} рдФрд░рд┐рдлрд╝ (0 === strpos($pValue, '=') && strlen($pValue) > 1) {
рдпрд╣ "рдкреНрд░рдХрд╛рд░ int рдХреЗ рдорд╛рди рдкрд░ рд╕рд░рдгреА рдСрдлрд╝рд╕реЗрдЯ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕" рддреНрд░реБрдЯрд┐ рдХреЛ рдареАрдХ рдХрд░реЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ "рдХрд░реНрд▓реА рдмреНрд░реЗрд╕реЗрд╕ рдХреЗ рд╕рд╛рде рдРрд░реЗ рдФрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдСрдлрд╝рд╕реЗрдЯ рдПрдХреНрд╕реЗрд╕ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ" рддреНрд░реБрдЯрд┐ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП PHPExcel рдХреЛрдб рдореЗрдВ рдШреБрдВрдШрд░рд╛рд▓реЗ рдмреНрд░реЗрд╕рд┐рдЬрд╝ рдХреЗ рд▓рд┐рдП рдПрдХ рдЦреЛрдЬ рдФрд░ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЬреЛ PHP рдпреВрдЧреНрд░реЗрдб рдХреЛ 7.4 рдкрд░ рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдмрд╕ рдЙрдиреНрд╣реЗрдВ рд╣рд░ рдЬрдЧрд╣ "[" рдФрд░ "]" рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдФрд░ рд╕рдм рдХреБрдЫ рдлрд┐рд░ рд╕реЗ рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред

рд╕рднреА 24 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЯрд┐рдХрдЯ рдЬрдорд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдЬрд╛рдирдХрд╛рд░реА рдЕрдзреВрд░реА рд╣реИред рд╣рдореЗрдВ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рдЖрдк рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдХреИрд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░рдирд╛ рд╣реИред рдХреГрдкрдпрд╛ рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдЙрдард╛ рд╕рдХреЗрдВ, рдХреГрдкрдпрд╛ (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) {

рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ ...

image

рдХреГрдкрдпрд╛ PhpSpreadsheet рдХреЗ рднреАрддрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдВ PhpSpreadsheet

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

contifico picture contifico  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

thearabbit picture thearabbit  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

dr3ads picture dr3ads  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ellej16 picture ellej16  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

rossjcooper picture rossjcooper  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ