Récemment, un projet tp3.2 a été migré vers le système Linux. Soudain, un jour, j'ai découvert que la fonction d'exportation Excel qui fonctionnait correctement sur Win Server 2008 ne pouvait pas être utilisée sur le nouveau système. L'erreur est signalée comme suit :
On dit qu'il y a un problème avec la ligne 1762. Retrouvez le code de ce fichier et jetez un oeil :
/** * 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()
Cette fonction getInstance(PHPExcel $workbook = NULL)
J'ai découvert qu'il y avait un PHPExcel supplémentaire lorsque cette fonction a été définie. J'ai essayé de la supprimer, de la télécharger et de la tester, mais l'erreur a été signalée à nouveau : <🎜. >
Cette fois, c'était la ligne 1721, puis j'ai retrouvé le fichier à cet emplacement. Supprimez les éléments PHPExcel, puis continuez à télécharger et à tester plus tard. PHPExcel lors de la définition de la fonction, mais les erreurs se succèdent. C'est le fichier qui doit être remplacé :
Vous devez ajouter un espace ici pour qu'il n'y ait pas d'erreur de remplacement. , continuons le téléchargement et les tests.
Puis cela s'est produit... J'avais le cœur brisé à ce moment-là...
Continuez Trouvez le problème et affichez les variables dans le fichier php de test pour les tests.
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()
Partage de la méthode d'importation d'Excel depuis phpexcel dans TP3.2
PHP utilise PHPExcel pour créer des lots télécharger dans la base de données
Explication détaillée d'un exemple de thinkPHP+phpexcel réalisant la fonction de sortie de rapport Excel
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!