Heim > Backend-Entwicklung > PHP-Tutorial > So beheben Sie den PHPExcel-Fehler im Linux-System

So beheben Sie den PHPExcel-Fehler im Linux-System

小云云
Freigeben: 2023-03-20 21:54:02
Original
2302 Leute haben es durchsucht

Kürzlich wurde ein tp3.2-Projekt auf das Linux-System migriert. Eines Tages stellte ich plötzlich fest, dass die Excel-Exportfunktion, die ursprünglich auf Win Server 2008 einwandfrei lief, auf dem neuen System nicht verwendet werden konnte. Der Fehler wird wie folgt gemeldet:

So beheben Sie den PHPExcel-Fehler im Linux-System Es wird gesagt, dass es ein Problem mit Zeile 1762 gibt. Suchen Sie den Code dieser Datei und schauen Sie nach:

/**
     * Get an instance of this class
     *
     * @access  public
     * @param   PHPExcel $workbook  Injected workbook for working with a PHPExcel object,
     *                                  or NULL to create a standalone claculation engine
     * @return PHPExcel_Calculation
     */
    public static function getInstance(PHPExcel $workbook = NULL) {
        if ($workbook !== NULL) {            if (isset(self::$_workbookSets[$workbook->getID()])) {                return self::$_workbookSets[$workbook->getID()];
            }            return new PHPExcel_Calculation($workbook);
        }        if (!isset(self::$_instance) || (self::$_instance === NULL)) {            self::$_instance = new PHPExcel_Calculation();
        }        return self::$_instance;
    }   //  function getInstance()
Nach dem Login kopieren

Diese Funktion getInstance(PHPExcel $workbook = NULL)
Ich habe festgestellt, dass es ein zusätzliches PHPExcel gab, als diese Funktion definiert wurde. Ich habe versucht, es zu löschen, hochzuladen und zu testen, aber der Fehler wurde erneut gemeldet:
So beheben Sie den PHPExcel-Fehler im Linux-System
Diesmal war es Zeile 1721, und dann habe ich die Datei an diesem Ort wieder gefunden und dann mit dem Hochladen und Testen fortgefahren PHPExcel beim Definieren der Funktion, aber die Fehler kommen nacheinander. Dies ist die Datei, die ersetzt werden muss:
So beheben Sie den PHPExcel-Fehler im Linux-System
Sie müssen hier ein Leerzeichen hinzufügen, damit es keine Ersetzungsfehler gibt , lasst uns mit dem Hochladen und Testen fortfahren
So beheben Sie den PHPExcel-Fehler im Linux-System
Dann passierte das... Ich war damals untröstlich...
Weiter Finden Sie das Problem und geben Sie die Variablen in der Test-PHP-Datei zum Testen aus.

PHPExcel\PHPExcel\Calculation\Functions.php  下面这个文件,中有个 **TYPE**函数,将其中的break去掉,上传,ok了/**
     * TYPE
     *
     * Returns a number that identifies the type of a value
     *
     * @param   value       The value you want tested
     * @return  number      N converts values listed in the following table
     *      If value is or refers to N returns
     *      A number            1
     *      Text                2
     *      Logical Value       4
     *      An error value      16
     *      Array or Matrix     64
     */
    public static function TYPE($value = NULL) {
        $value	= self::flattenArrayIndexed($value);        if (is_array($value) && (count($value) > 1)) {            $a = array_keys($value);            $a = array_pop($a);            //  Range of cells is an error
            if (self::isCellValue($a)) {                return 16;            //  Test for Matrix
            } elseif (self::isMatrixValue($a)) {                return 64;
            }
        } elseif(empty($value)) {            //  Empty Cell
            return 1;
        }        $value	= self::flattenSingleValue($value);        if (($value === NULL) || (is_float($value)) || (is_int($value))) {                return 1;
        } elseif(is_bool($value)) {                return 4;
        } elseif(is_array($value)) {                return 64;                break;
        } elseif(is_string($value)) {            //  Errors
            if ((strlen($value) > 0) && ($value{0} == '#')) {                return 16;
            }            return 2;
        }        return 0;
    }   //  function TYPE()
Nach dem Login kopieren

Dies ist der vollständige Prozess. Das Online-System verwendet Centos7 und PHP ist ebenfalls 7. Dies liegt wahrscheinlich an der Inkompatibilität, und ich habe es nicht weiter untersucht. Schließlich gibt es tatsächlich ein neues Excel-Plug-In. Wenn nicht, müssen zu viele Codes geändert werden Plug-in.

Verwandte Empfehlungen:

Teilen der Methode zum Importieren von Excel aus PHPExcel in TP3.2

PHP verwendet PHPExcel zum Stapeln In die Datenbank hochladen

Detaillierte Erläuterung des Beispiels von thinkPHP+phpexcel, das die Excel-Berichtsausgabefunktion realisiert

Das obige ist der detaillierte Inhalt vonSo beheben Sie den PHPExcel-Fehler im Linux-System. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage