|
Vamos a ver como podemos leer archivos Excel programando en PHP.
Como podemos encontrar en php.net existe una función que nos permite leer archivos .csv desde PHP, esta función es fgetcsv()
Descripción
array fgetcsv ( resource $handle [, int $length [, string $delimiter [, string $enclosure [, string $escape ]]]] )
similar a fgets() , pero fgetcsv() parsea la línea que lee en formato CSV y devuelve un array que contiene los campos leídos.
La función fgetcsv no nos sirve para leer nuestros ficheros en Excel. Buscando por internet he encontrado una función que sí que lo hace, aunque con pequeños retoques, ya que lo que hay en internet no funciona.
Se trata de la función PHP-ExcelReader, que podemos encontrar en ESTE ENLACE
Pero si descomprimes los ficheros oleread.inc y reader.php y te creas una página php para poder utilizarlos...
te da un error de esta forma...
Warning: require_once(Spreadsheet/Excel/Reader/OLERead.php) [function.require-once]: failed to open stream: No such file or directory in C:AppServwwwPracticaphpExcelReaderExcel eader.php on line 31
¿por qué? Fácil, porque el fichero OLERead.php no está en ninguna parte del código que hemos descomprimido. En la linea 31 del fichero reader.php hay que poner require_once ´oleread.inc´;
Después de salvado este escollo el error es otro, incomprensiblemente , ninguno de los ficheros excel que he probado funcionan. El código me dice que los ficheros no se pueden leer. Investigando en el código podemos ver que en el fichero oleread.inc aparece...
// check if file exist and is readable (Darko Miljanovic)
if(!is_readable($sFileName)) {
$this->error = 1;
return false;
}
Lo cual comprueba si el fichero se puede leer, con la funcion is_readable(), la cual siempre retorna false (???)
He comentado esta parte del código y voila!!! funciona
// check if file exist and is readable (Darko Miljanovic)
//if(!is_readable($sFileName)) {
// $this->error = 1;
// return false;
//}
El código para leer un archivo excel es este...
require_once ´phpExcelReader/reader.php´; // ojo con la ruta de acceso del fichero reader.php
$data = new Spreadsheet_Excel_Reader();
$data->read($ruta_archivo);
error_reporting(E_ALL ^ E_NOTICE);
for ($i = 1; $i <= $data->sheets[0][´numRows´]; $i++) {
for ($j = 1; $j <= $data->sheets[0][´numCols´]; $j++) {
echo """.$data->sheets[0][´cells´][$i][$j]."",";
}
echo " ";
}
IMPORTANTE: si copiais este código, debéis cambiar las comillas que aparecen en él, sustituyendo las que véis por las comillas simples (las de la tecla de interrogación, a la derecha del cero del teclado)
Que disfrutéis!!!
Autor: Oscar Hernández Caballero
ARTICULOS RELACIONADOS:
http://www.parentesys.es/Escribir-archivos-Excel-con-PHP-32858
|