Home > desarrollo, Spanish, técnico > PHP Excel Reader – Leer ficheros XLS con PHP

PHP Excel Reader – Leer ficheros XLS con PHP

¿Cómo leer un archivo de Excel (XLS) en un PHP? La respuesta (o URL) es simple:

http://sourceforge.net/projects/phpexcelreader

Sin embargo, al parecer existe un error en uno de los require_once en los archivos PHP del paquete el cual es un poco tedioso de encontrar.

En el archivo Excel/reader.php (línea 31) encontramos:

require_once ‘Spreadsheet/Excel/Reader/OLERead.php’;

hay que cambiarlo por:

require_once ‘oleread.inc’;

Luego en nuestro archivo PHP llamamos al reader.php  y voila!

require_once ‘Excel/reader.php’;

// ExcelFile($filename, $encoding);
$data = new Spreadsheet_Excel_Reader();

// Set output Encoding.
$data->setOutputEncoding(‘CP1251’);

$data->read(‘test.xls’);

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 “\n”;
}

Categories: desarrollo, Spanish, técnico Tags: ,
  1. ywarnier
    July 3, 2008 at 11:22 pm

    También de interés para leer ficheros de OpenOffice: http://blogantastico.blogspot.com/2008/02/ods-php.html (gracias a jcarlosn de meneame por el enlace)

  2. September 11, 2008 at 4:55 pm

    Cuando extraigo con la funcion $data->sheets[$sheetMaterialList][‘cells’][$i][$colCipnumberID], si el valor de la celda es 702084 tejala bien, si es 702084.2 te jala bien, si es 702084.25, te jala bien pero si es 702084.235 te muestra 702084.484 osea te modifia los caracteres despues del punto eso sucede en todas los string que tienen tres caracteres despues dl punto

  3. ywarnier
    September 11, 2008 at 5:01 pm

    Hola, Luis,

    Como es una librería escrita en PHP mismo, deberías poder encontrar como arreglarla. Supongo que es debido a alguna expresión regular por ahí…

    Nosotros no desarrollamos esta librería, por eso lo mejor, seguro, sera de mandar un e-mail a los autores de la librería misma, pidiendo si es un bug y si se puede arreglar. Supongo que deben tener razones por haber puesto un limite así.

  4. Nancy
    April 23, 2009 at 10:05 am

    Excelente acotación! Funciona correctamente! Mil gracias!!

  5. David
    April 24, 2009 at 1:36 am

    Buenos dias soy bastante novato en el tema y estoy intentando probar el codigo y no funciona del todo bien.

    Necesitaba que lo presentase en el formato de tabla y este lo escribe todo seguido.

    Alguien sabe como se puede solucionar esto.

    Gracias por todo

  6. Oscalprab
    August 13, 2009 at 9:08 am

    Me sirvió a la perfección su consejo

  7. elizabeth
    September 17, 2009 at 11:17 am

    Hola
    Muy buena la libreria pero tengo un problema, quisiera saber como guardar en variables cada uno de los valores de cada fila y columna, que pasa en mo caso el numero de columnas es fijo pero el numero de filas no, por lo tanto no se como recorrer el arreglo para guardar cada valor, ayuda por favor
    gracias

  8. November 4, 2009 at 3:02 pm

    Hola tengo un archivo de excel necesito leerlo encribir en el guardalo y cuando lo vuelva a abir me mantega cambios gracias

    • ywarnier
      November 4, 2009 at 4:46 pm

      También existe una librería PHPExcelWriter para esto. Suerte.

  9. Adrian
    November 19, 2009 at 12:46 pm

    Hola… en hora buena !!
    estaba como loco buscando como leer los arshivos de excel =|… i me encontré esta librería en varios sitios… pero no me salia nada i no sabia q se debia a esto…

    En el archivo Excel/reader.php (línea 31) encontramos:

    require_once ‘Spreadsheet/Excel/Reader/OLERead.php’;

    hay que cambiarlo por:

    require_once ‘oleread.inc’;

    gracias… mushias gracias =D !!!

    saludos !!

    • juliomontoya
      November 19, 2009 at 2:11 pm

      Es bueno cuando alguien comparte su conocimiento!

  10. Reinier
    December 11, 2009 at 10:04 pm

    Buenas he leido ya sobre esta libreria y quisiera saber si alguien me ayuda con un problema. cuando trato de leer desde php una celda que es una formula me devuelve el dato en blanco o sea cuando una celda es, ejemplo: =A4*3 , me devuelve el dato vacio sin embargo si es texto me lo devuelve bien. Si alguien supiera la respuesta favor de publicarla.

    Gracias de antemano

  11. Gonzalitro
    February 5, 2010 at 10:18 am

    beunisima me sirve ahora subo esta info a la base y la planilla pasa a segundo plano

    excelente muy agradecido

  12. popeye
    November 17, 2011 at 9:38 pm

    lo ejecuto y me sale esto!
    “Number Formats”,”123456789.12345″,””,””,””,””,””,””,””,””, “Format”,”Positive”,”Negative Format 1″,”Negative Format 2″,”Negative Format 3″,”Negative Format 4″,””,””,””,””, “1234”,”123456789″,”-123456789″,”-123456789.12345″,”-123456789.12345″,”-123456789.12345″,””,”Col I is hidden –>”,””,””, “1234.0”,”123456789.12345″,”-123456789.12345″,”-123456789.12345″,”-123456789.12345″,”-123456789.12345″,””,””,””,”This is col J”, “1234.00”,”123456789.12″,”-123456789.12″,”-123456789.12345″,”-123456789.12345″,”-123456789.12345″,””,””,””,””, “1,234”,”123456789″,”-123456789″,”-123456789.12345″,”-123456789″,”-123456789″,””,””,””,””, “1,234.0”,”123456789.12345″,”-123456789.12345″,”-123456789.12345″,”-123456789.12345″,”-123456789.12345″,””,””,””,””, “1,234.00”,”123456789.12″,”-123456789.12″,”-123456789.12345″,”-123456789.12″,”-123456789.12″,””,””,””,””, “$1,234.00″,”123456789.12345″,”-123456789.12345″,”-123456789.12345″,”-123456789.12345″,”-123456789.12345″,””,””,””,””, “Dates”,”Times”,””,””,”Percentages”,”Fonts”,””,””,””,””, “01/01/2009″,”12/11/2008 10:55″,”39814.072905093″,”23:00:00″,”0%”,”Bold”,””,””,””,””, “39481”,”39763.455421528″,”39814.072916667″,”23:30:00″,”0.01%”,”Italic”,””,””,””,””, “39813”,”10:55:48″,”39814.072928241″,””,””,”Underline”,””,””,””,””, “39813”,”02/12/2009″,””,””,””,”Bold – Italic”,””,””,””,””, “39813”,””,””,””,””,”Bold – Underline”,””,””,””,””, “39813”,””,””,”mondongo”,””,”italic – Underline”,””,””,””,””, “Colors”,””,””,””,””,””,””,””,””,””, “Red”,”Green”,”Blue”,”Yellow”,”Gray”,”Orange”,”Purple”,”Cyan”,””,””, “”,””,””,””,””,””,””,””,””,””, “Format Colors Override Cell Colors:”,””,”-444″,”444″,””,””,””,””,””,””, “”,””,””,””,””,””,””,””,””,””, “Col/Row Spans”,””,””,”Alignment”,”Font Size”,”Font Family”,””,””,””,””, “colspan=3″,””,””,”left”,”10 point”,”Times New Roman”,””,””,””,””, “rowspan=3″,”colspan=2″,””,”center”,”12 point”,”Arial”,””,””,””,””, “”,”colspan=2 rowspan=2″,””,”right”,”16 point”,”Verdana”,””,””,””,””, “”,””,””,””,”20 point”,”Comic Sans MS”,””,””,””,””, “”,””,””,””,””,””,””,””,””,””, “Formulas”,””,””,”estan es locos”,””,””,””,””,””,””, “Boolean:”,””,””,””,””,””,””,””,””,””, “String:”,””,””,””,””,””,””,””,””,””, “”,””,””,””,””,””,””,””,””,””, “Borders”,””,””,””,””,””,””,””,””,””, “Thick Solid:”,”left”,”top”,”right”,”bottom”,”none”,”all”,””,””,””, “”,””,””,””,””,””,””,””,””,””, “Double:”,”left”,”top”,”right”,”bottom”,”none”,”all”,””,””,””, “”,””,””,””,””,””,””,””,””,””, “Dashed:”,”left”,”top”,”right”,”bottom”,”none”,”all”,””,””,””, “”,””,””,””,””,””,””,””,””,””, “Dotted:”,”left”,”top”,”right”,”bottom”,”none”,”all”,””,””,””, “”,””,””,””,””,””,””,””,””,””, “Border Colors:”,”Red”,”Green”,”Yellow”,”Blue”,””,”all”,””,””,””, “This row is 100 px tall”,””,””,”http://www.google.com”,”This also links to Google”,””,””,””,””,””, “”,””,””,””,””,””,””,””,””,””, “The row above this is hidden”,””,”Link to CNN”,”And this”,”This one too”,””,””,””,””,””,

    porque???
    UNa ayuda por favor, que alguien explique porque se ejecuta asi

    • Yannick Warnier
      November 18, 2011 at 5:31 am

      Esto es el formato deseado (formato CSV). Si quieres otro formato, tienes que modificar un poco el código para que te lo formatee.

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: