lunes, 18 de febrero de 2013

Importar datos de Excel a PHP utilizando PHPExcel


  1. Descargar la librería PHPExcel.
  2. Luego crear un archivo (.php).
  3. Copiar el código y listo :).

<?php 
require_once 'Classes/PHPExcel/IOFactory.php';
$objPHPExcel = PHPExcel_IOFactory::load("excel.xlsx");
foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) {
$worksheetTitle     = $worksheet->getTitle();
$highestRow         = $worksheet->getHighestRow(); // e.g. 10
$highestColumn      = $worksheet->getHighestColumn(); // e.g 'F'
$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);
$nrColumns = ord($highestColumn) - 64;
echo "<br>The worksheet ".$worksheetTitle." has ";
echo $nrColumns . ' columns (A-' . $highestColumn . ') ';
echo ' and ' . $highestRow . ' row.';
echo '<br>Data: <table border="1"><tr>';
for ($row = 1; $row <= $highestRow; ++ $row) {
echo '<tr>';
for ($col = 0; $col < $highestColumnIndex; ++ $col) {
$cell = $worksheet->getCellByColumnAndRow($col, $row);
$val = $cell->getValue();
$dataType = PHPExcel_Cell_DataType::dataTypeForValue($val);
echo '<td>' . $val . '<br>(Typ ' . $dataType . ')</td>';
}
echo '</tr>';
}
echo '</table>';
}

6 comentarios:

Unknown dijo...

Y el archivo excel.xlsx donde hay que ponerlo para que lo lea?

Juan dijo...

Puedes poner en el mismo directorio y poner el mismo código
$objPHPExcel = PHPExcel_IOFactory::load("excel.xlsx");

O puedes cambiar de ruta de esta forma
$objPHPExcel = PHPExcel_IOFactory::load("carpeta/excel.xlsx");

Lizbeth dijo...

Hola, me podrías ayudar a insertar los registros leídos en una tabla en mysql?

Unknown dijo...

Juan carlos, muchas gracias por tu aporte, te tengo una pregunta, saber como hacer los siguiente: tengo un excel que deseo cargar a una base de datos, pero en el excel tengo una celda con una fecha, resulta que trato de hacerlo pero siempre lo que hace es devolverme un numero, el numero es el mismo que me muestra excel si yo le doy tipo de formato general. te quedaria muy agradecido si me puedes ayudar recomendandome alguna solucion

Unknown dijo...

Juan carlos, muchas gracias por tu aporte, te tengo una pregunta, saber como hacer los siguiente: tengo un excel que deseo cargar a una base de datos, pero en el excel tengo una celda con una fecha, resulta que trato de hacerlo pero siempre lo que hace es devolverme un numero, el numero es el mismo que me muestra excel si yo le doy tipo de formato general. te quedaria muy agradecido si me puedes ayudar recomendandome alguna solucion

osquel dijo...

me sale esto alguien me puede ayudar.

Notice: Trying to access array offset on value of type int in D:\xampp\htdocs\PHPExcel\PHPExcel\Classes\PHPExcel\Cell\DefaultValueBinder.php on line 82

Publicar un comentario