Laravel-excel: [ΠžΠ¨Π˜Π‘ΠšΠ] Π˜ΠΌΠΏΠΎΡ€Ρ‚ EXCEL происходит ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π² PHP7.4, ΠΎΡ‚Π²Π΅Ρ‚: ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΡΠΌΠ΅Ρ‰Π΅Π½ΠΈΡŽ массива для значСния Ρ‚ΠΈΠΏΠ° int

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 5 Π΄Π΅ΠΊ. 2019  Β·  24ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: Maatwebsite/Laravel-Excel

ВСрсии

  • ВСрсия PHP: PHP7.4 (Π² Centos7 yum установлСна β€‹β€‹ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Π°Ρ вСрсия php74 с Ρ„ΠΎΡ€ΠΌΡ‹ remisrepo)
  • ВСрсия Laravel: Laravel Framework 5.8.35
  • ВСрсия ΠΏΠ°ΠΊΠ΅Ρ‚Π°: maatwebsite / excel 3.1.17

ОписаниС

Π˜ΠΌΠΏΠΎΡ€Ρ‚ EXCEL происходит ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π² PHP7.4,
Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅-> сообщСниС ():
ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΡΠΌΠ΅Ρ‰Π΅Π½ΠΈΡŽ массива ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ Ρ‚ΠΈΠΏΠ° int.

ДСйствия ΠΏΠΎ Π²ΠΎΡΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡŽ

ОТидаСмоС повСдСниС:

ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» xlsx, ΠΊΠΎΠ³Π΄Π° я Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽ ΠΊΠΎΠ΄ Π½Π° php72w

ЀактичСскоС ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅:
ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ я Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ» свой сСрвСр с php7.2 Π½Π° php7.4, ΠΊΠΎΠ³Π΄Π° я ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽ Excel, ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ сбой, ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π²Ρ‹ΡˆΠ΅.

Π±Ρ‹Π»ΠΎ Π±Ρ‹ снова Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ, Ссли Π±Ρ‹ я понизился с 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:
} elseif ($ pValue [0] === '=' && strlen ($ pValue)> 1) {
со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ:
} elseif (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) ΠΈ Π΄Π²Π°ΠΆΠ΄Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Π·Π°ΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ Π»ΠΈ Π²Ρ‹ шаблон Π·Π°Π΄Π°Ρ‡ΠΈ. ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π½Π°ΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎ Π·Π°Π±Ρ€Π°Ρ‚ΡŒ ваш Π±ΠΈΠ»Π΅Ρ‚. Вопросы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ инструкциям, Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ Π½Π°Π΄ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ.

НС ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Π²Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π΅Ρ‰Π΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ stacktrace, я Π½Π΅ ΠΌΠΎΠ³Ρƒ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΏΡ€ΠΈ использовании ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π½Π° PHP7.4. ΠœΠΎΠΆΠ΅Ρ‚ это Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π² вашСм ΠΊΠΎΠ΄Π΅?

ΠŸΡ€ΠΈΠ²Π΅Ρ‚, @patrickbrouwers, спасибо Π·Π° ΠΏΠ°ΠΊΠ΅Ρ‚, я Π΅Π³ΠΎ большой ΠΏΠΎΠΊΠ»ΠΎΠ½Π½ΠΈΠΊ!

Π― ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ послС обновлСния, хотя это происходит Π²ΠΎ врСмя экспорта, ΠΈ stacktrace ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° связана с phpsreadsheet, Π° Π½Π΅ с Laravel-Excel, Π½ΠΎ 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:
} elseif ($ pValue [0] === '=' && strlen ($ pValue)> 1) {
со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ:
} elseif (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 '. Π― ΠΎΡ‡Π΅Π½ΡŒ надСюсь!

Π­Ρ‚ΠΎ ΠΏΡƒΡ‚ΡŒ: third_party / PHPExcel / Classes / PHPExcel / Cell / DefaultValueBinder.php
Π—Π΄Π΅ΡΡŒ third_party ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Π³Π΄Π΅ Π²Ρ‹ сохранили свою ΠΏΠ°ΠΏΠΊΡƒ PHPExcel.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ === '=' ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Π΅ΡΡ‚ΡŒ Π»ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ строка, Π° Π·Π°Ρ‚Π΅ΠΌ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π΅Π΅ Π½Π°
0 === strpos ($ pValue, '=')
ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π±Ρ‹Π»ΠΈ Π±Ρ‹ Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΆΠ΅. Π’ ΠΌΠΎΠ΅ΠΌ случаС это Π±Ρ‹Π»ΠΎ
$ pValue [0] === '='

Π’ Ρ„Π°ΠΉΠ»Π΅ PHPExcel "DefaultValueBinder.php" Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ эту строку 82:
} elseif ($ pValue [0] === '=' && strlen ($ pValue)> 1) {
со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ:
} elseif (0 === strpos ($ pValue, '=') && strlen ($ pValue)> 1) {
Π­Ρ‚ΠΎ исправит ΠΎΡˆΠΈΠ±ΠΊΡƒ Β«ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΡΠΌΠ΅Ρ‰Π΅Π½ΠΈΡŽ массива для значСния Ρ‚ΠΈΠΏΠ° intΒ». Но Π²Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ потрСбуСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ поиск ΠΈ Π·Π°ΠΌΠ΅Π½Ρƒ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобок Π²ΠΎ всСм ΠΊΠΎΠ΄Π΅ PHPExcel, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ «Бинтаксис доступа ΠΊ массиву ΠΈ строковому ΡΠΌΠ΅Ρ‰Π΅Π½ΠΈΡŽ с Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹ΠΌΠΈ скобками устарСл», которая Ρ‚Π°ΠΊΠΆΠ΅ влияСт Π½Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ PHP Π΄ΠΎ вСрсии 7.4. Π― просто Π·Π°ΠΌΠ΅Π½ΠΈΠ» ΠΈΡ… Π½Π° "[" ΠΈ "]" Π²Π΅Π·Π΄Π΅, ΠΈ всС снова Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ.

ΠΎΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚! люблю вас!

Π’ Ρ„Π°ΠΉΠ»Π΅ PHPExcel "DefaultValueBinder.php" Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ эту строку 82:
} elseif ($ pValue [0] === '=' && strlen ($ pValue)> 1) {
со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ:
} elseif (0 === strpos ($ pValue, '=') && strlen ($ pValue)> 1) {
Π­Ρ‚ΠΎ исправит ΠΎΡˆΠΈΠ±ΠΊΡƒ Β«ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΡΠΌΠ΅Ρ‰Π΅Π½ΠΈΡŽ массива для значСния Ρ‚ΠΈΠΏΠ° intΒ». Но Π²Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ потрСбуСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ поиск ΠΈ Π·Π°ΠΌΠ΅Π½Ρƒ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобок Π²ΠΎ всСм ΠΊΠΎΠ΄Π΅ PHPExcel, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ «Бинтаксис доступа ΠΊ массиву ΠΈ строковому ΡΠΌΠ΅Ρ‰Π΅Π½ΠΈΡŽ с Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹ΠΌΠΈ скобками устарСл», которая Ρ‚Π°ΠΊΠΆΠ΅ влияСт Π½Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ PHP Π΄ΠΎ вСрсии 7.4. Π― просто Π·Π°ΠΌΠ΅Π½ΠΈΠ» ΠΈΡ… Π½Π° "[" ΠΈ "]" Π²Π΅Π·Π΄Π΅, ΠΈ всС снова Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ.

Когда я ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠ» Π½Π° PHP 7.3, спасибо, ΠΌΡƒΠΆΠΈΠΊ, это ΠΏΠΎΠΌΠΎΠ³Π»ΠΎ ΠΌΠ½Π΅.

Π•ΡΡ‚ΡŒ ΠΈΠ΄Π΅ΠΈ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ PHP 7.4.3 ΠΈ maatwebsite / excel вСрсии 2.1?

Π’Π°ΠΌ придСтся Ρ€Π°Π·Π²Π΅Ρ‚Π²Π»ΡΡ‚ΡŒ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ phpexcel ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π²ΠΈΠ»ΠΊΡƒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ.

} elseif (0 === strpos($pValue, '=') && strlen($pValue) > 1) {

strpos of bool, rly?

ΠŸΡ€ΠΎΡΡ‚ΠΎ помСститС этот ΠΊΠΎΠ΄ послС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π² is_bool ΠΈ is_float

Код Π½Π΅ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ этого ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Π° являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅Π³ΠΎ PhpExcel.

Π’ Ρ„Π°ΠΉΠ»Π΅ PHPExcel "DefaultValueBinder.php" Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ эту строку 82:
} elseif ($ pValue [0] === '=' && strlen ($ pValue)> 1) {
со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ:
} elseif (0 === strpos ($ pValue, '=') && strlen ($ pValue)> 1) {
Π­Ρ‚ΠΎ исправит ΠΎΡˆΠΈΠ±ΠΊΡƒ Β«ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΡΠΌΠ΅Ρ‰Π΅Π½ΠΈΡŽ массива для значСния Ρ‚ΠΈΠΏΠ° intΒ». Но Π²Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ потрСбуСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ поиск ΠΈ Π·Π°ΠΌΠ΅Π½Ρƒ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобок Π²ΠΎ всСм ΠΊΠΎΠ΄Π΅ PHPExcel, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ «Бинтаксис доступа ΠΊ массиву ΠΈ строковому ΡΠΌΠ΅Ρ‰Π΅Π½ΠΈΡŽ с Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹ΠΌΠΈ скобками устарСл», которая Ρ‚Π°ΠΊΠΆΠ΅ влияСт Π½Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ PHP Π΄ΠΎ вСрсии 7.4. Π― просто Π·Π°ΠΌΠ΅Π½ΠΈΠ» ΠΈΡ… Π½Π° "[" ΠΈ "]" Π²Π΅Π·Π΄Π΅, ΠΈ всС снова Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ.

Бпасибо, ΠΌΡƒΠΆΠΈΠΊ. ΠžΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΠ»ΠΎΡΡŒ. Бпасибо @burello <3

Π›ΡƒΡ‡ΡˆΠ΅ всСго ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ PHPOffice/PhpSpreadsheet Π² вашСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Π²Ρ‹ΡˆΠ΅ 1,10, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΠ³Π΄Π° эта ошибка Π±ΡƒΠ΄Π΅Ρ‚ исправлСна ​​бСз нСобходимости Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ΠΎΠ²ΡƒΡŽ Π±Π°Π·Ρƒ ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ для мСня

composer require phpoffice/phpspreadsheet "^1.10"

исправил ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ.

Ρƒ мСня Ρ‚ΠΎΠΆΠ΅ Π΅ΡΡ‚ΡŒ эта ошибка

ΡƒΠΆΠ΅ нСвСТСствСнный

Π’ Ρ„Π°ΠΉΠ»Π΅ PHPExcel "DefaultValueBinder.php" Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ эту строку 82:
} elseif ($ pValue [0] === '=' && strlen ($ pValue)> 1) {
со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ:
} elseif (0 === strpos ($ pValue, '=') && strlen ($ pValue)> 1) {
Π­Ρ‚ΠΎ исправит ΠΎΡˆΠΈΠ±ΠΊΡƒ Β«ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΡΠΌΠ΅Ρ‰Π΅Π½ΠΈΡŽ массива для значСния Ρ‚ΠΈΠΏΠ° intΒ». Но Π²Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ потрСбуСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ поиск ΠΈ Π·Π°ΠΌΠ΅Π½Ρƒ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобок Π²ΠΎ всСм ΠΊΠΎΠ΄Π΅ PHPExcel, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ «Бинтаксис доступа ΠΊ массиву ΠΈ строковому ΡΠΌΠ΅Ρ‰Π΅Π½ΠΈΡŽ с Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹ΠΌΠΈ скобками устарСл», которая Ρ‚Π°ΠΊΠΆΠ΅ влияСт Π½Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ PHP Π΄ΠΎ вСрсии 7.4. Π― просто Π·Π°ΠΌΠ΅Π½ΠΈΠ» ΠΈΡ… Π½Π° "[" ΠΈ "]" Π²Π΅Π·Π΄Π΅, ΠΈ всС снова Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ.

Бпасибо Π·Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ !! orderimportexport.ocmod opencart 3x

Π’ Ρ„Π°ΠΉΠ»Π΅ PHPExcel "DefaultValueBinder.php" Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ эту строку 82:
} elseif ($ pValue [0] === '=' && strlen ($ pValue)> 1) {
со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ:
} elseif (0 === strpos ($ pValue, '=') && strlen ($ pValue)> 1) {
Π­Ρ‚ΠΎ исправит ΠΎΡˆΠΈΠ±ΠΊΡƒ Β«ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΡΠΌΠ΅Ρ‰Π΅Π½ΠΈΡŽ массива для значСния Ρ‚ΠΈΠΏΠ° intΒ». Но Π²Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ потрСбуСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ поиск ΠΈ Π·Π°ΠΌΠ΅Π½Ρƒ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобок Π²ΠΎ всСм ΠΊΠΎΠ΄Π΅ PHPExcel, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ «Бинтаксис доступа ΠΊ массиву ΠΈ строковому ΡΠΌΠ΅Ρ‰Π΅Π½ΠΈΡŽ с Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹ΠΌΠΈ скобками устарСл», которая Ρ‚Π°ΠΊΠΆΠ΅ влияСт Π½Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ PHP Π΄ΠΎ вСрсии 7.4. Π― просто Π·Π°ΠΌΠ΅Π½ΠΈΠ» ΠΈΡ… Π½Π° "[" ΠΈ "]" Π²Π΅Π·Π΄Π΅, ΠΈ всС снова Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ.

Π£Π΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‚Ρ‹ спас мСня, Π±Ρ€Π°Ρ‚Π°Π½, большоС Ρ‚Π΅Π±Π΅ спасибо

Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ эту строку 82:
} elseif ($ pValue [0] === '=' && strlen ($ pValue)> 1) {
со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ:
} elseif (0 === strpos ($ pValue, '=') && strlen ($ pValue)> 1) {

Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° мСня ...

image

Π‘ΠΎΠΎΠ±Ρ‰Π°ΠΉΡ‚Π΅ ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… Π² PhpSpreadsheet Π² PhpSpreadsheet.

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ