Cómo interactuar con Excel desde PHP

Home / Cómo hacer para... / Cómo interactuar con Excel desde PHP

Un problema bastante común en el desarrollo de aplicaciones para empresas es la interacción con Excel (Levantar datos, generar planillas, etc…).

Un modo sencillo de evadir el problema (y que muchas veces funciona), es exportar la información hacia archivos de texto separados por comas (Los famosos CSV) y luego tratarlos desde PHP con funciones como fgetcsv. Obviamente, esto servirá si se trata de una aplicación que sólo requiere leer datos… ¿Qué pasa si necesitamos generarlos? (O si la estructura de la planilla en cuestión es algo más compleja).

Como en la mayoría de los casos, existen diversas opciones de solución. Una particularmente buena es la librería PHPExcel.

Aquí un ejemplo de uso (Extracto de un proyecto que desarrollamos para un cliente de Leeway):

$objPHPExcel = new PHPExcel(); // Se crea la instancia 
$objPHPExcel->createPHPExcelObject($reportFileName); // Se asocia con el archivo de Excel que se quiere procesar 
$phpExcelObject->setActiveSheetIndex(0); // Se define que se trabajara sobre la primera hoja 
$workSheet = $phpExcelObject->getActiveSheet(); 
foreach ($workSheet->getRowIterator(7) as $row) { // Iteramos sobre todas las filas a partir de la septima 
   $accountNumber = $workSheet->getCellByColumnAndRow(0, $row->getRowIndex())->getValue(); // De esta forma se obtiene el valor de una celda dada su columna y fila ... 
}

Como podrás ver en el ejemplo, es bastante sencillo realizar operaciones sobre una planilla Excel casi como si estuvieses escribiendo una macro.

¿Te encontraste con algún problema para manipular planillas Excel? Comentalo y busquémosle una solución.

mchojrin

CEO at Leeway
Mauro es Lic. en Ciencias de la Computación.
Su carrera como docente de programación se inició en el año 1997 en la Escuela Técnica ORT.
Actualmente coordina el desarrollo de proyectos web en Leeway y los cursos dictados en la Leeway Academy

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *