¿Por qué no tengo acceso a setReadDataOnly () o enableMemoryOptimization () en PHPExcel?

StackOverflow https://stackoverflow.com/questions/4545460

  •  13-10-2019
  •  | 
  •  

Pregunta

He descargado PHPExcel 1.7.5 Producción .

Me gustaría uso setReadDataOnly () y enableMemoryOptimization () como discutido en su foro aquí y en preguntas stackOverflow .

Sin embargo, cuando los utilizo, me sale un error de Call to undefined method.

¿Hay otra versión o algún plugin o biblioteca que no he instalado? ¿Qué tengo que hacer para acceder a estos métodos?

$objPHPExcel = PHPExcel_IOFactory::load("data/".$file_name);
$objPHPExcel->setReadDataOnly(true); //Call to undefined method
$objPHPExcel->enableMemoryOptimization(); //Call to undefined method
¿Fue útil?

Solución

Ya hemos identificado qué setReadDataOnly () no está funcionando.

enableMemoryOptimization () no es un método válido para cualquier clase dentro de PHPExcel. Si desea optimizar la memoria, se habilita uno de los métodos cacheing celular antes cargar cualquier archivo o una instancia de un nuevo objeto PHPExcel.

$inputFileType = 'Excel2007';
$inputFileName = 'testBook.xlsx';

$r = PHPExcel_CachedObjectStorageFactory::initialize(PHPExcel_CachedObjectStorageFactory::cache_to_phpTemp);
if (!$r) {
    die('Unable to set cell cacheing');
}

$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load($inputFileName);

Editar

El hilo en enableMemoryOptimization () que se vincula en su pregunta es de un usuario que quería que esta integrado en PHPExcel de una manera que se rompió la mayor parte de la funcionalidad de la clase, al tiempo que mejora el rendimiento de su caso de uso específico (a expensas de la mayoría de los otros usuarios); y que habría dado lugar a dos métodos incompatibles para la manipulación de datos dentro de la biblioteca. Como tal, lo rechacé.

Otros consejos

bien, es sólo una cuestión de sintaxis, lo que tiene que hacer un lector, por ejemplo:.

$reader = PHPExcel_IOFactory::createReaderForFile("data/".$file_name);
$reader->setReadDataOnly(true);
//$reader->enableMemoryOptimization(); //Call to undefined method
$objPHPExcel = $reader->load("data/".$file_name);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top