====== SimpleXLSX ====== Clase de [[informatica:programacion:php|PHP]] para analizar y leer ficheros de Excel ''.xlsx'' (OpenXML) * [[https://github.com/shuchkin/simplexlsx|Repositorio de código]] Desde 2006-2007, Microsoft empezó a usar el formato [[https://en.wikipedia.org/wiki/Office_Open_XML|Open Office XML]], así que desde entonces han aparecido muchas herramientas para la lectura y escritura de estos ficheros. ===== Uso ===== use Shuchkin\SimpleXLSX; // Ruta a la clase require_once __DIR__.'/vendor/SimpleXLSX.php'; if ( $xlsx = SimpleXLSX::parse('book.xlsx') ) { print_r( $xlsx->rows() ); } else { echo SimpleXLSX::parseError(); } ==== Seleccionar una hoja ==== use Shuchkin\SimpleXLSX; // Ruta a la clase require_once __DIR__.'/vendor/SimpleXLSX.php'; $xlsx = SimpleXLSX::parse('book.xlsx'); foreach( $xlsx->rows(1) as $r ) { // Segunda hoja (empiezan a contarse desde el 0) print_t( $r ); } ==== Fichero XLSX a tabla HTML ==== use Shuchkin\SimpleXLSX; // Ruta a la clase require_once __DIR__.'/vendor/SimpleXLSX.php'; if ( $xlsx = SimpleXLSX::parse('book.xlsx') ) { echo $xlsx->toHTML(); } else { echo SimpleXLSX::parseError(); } ==== Fichero XSLX a CSV ==== use Shuchkin\SimpleXLSX; // Ruta a la clase require_once __DIR__.'/vendor/SimpleXLSX.php'; if ( $xlsx = SimpleXLSX::parse( 'fichero.xlsx' ) ) { $f = fopen('fichero.csv', 'wb'); // fwrite($f, chr(0xEF) . chr(0xBB) . chr(0xBF)); // UTF-8 BOM foreach ( $xlsx->readRows() as $r ) { fputcsv($f, $r); // Para Excel en español: // fputcsv($f, $r, ';', '"', "\\"); } fclose($f); } else { echo SimpleXLSX::parseError(); } ==== Obtener el nombre de las hojas y su posición ==== use Shuchkin\SimpleXLSX; // Ruta a la clase require_once __DIR__.'/vendor/SimpleXLSX.php'; // Las hojas se empiezan a contar desde el 0 if ( $xlsx = SimpleXLSX::parse( 'xlsx/books.xlsx' ) ) { print_r( $xlsx->sheetNames() ); print_r( $xlsx->sheetName( $xlsx->activeSheet ) ); } ==== Información del fichero ==== * ''%%$xlsx->dimension($worksheetIndex)%%'': tamaño de la hoja. Devuelve un array ''[columnas, filas]'' * ''%%$xlsx->sheetsCount()%%'': devuelve el número de hojas (entero). * ''%%$xlsx->sheetNames()%%'': devuelve el nombre de las hojas (array). * ''%%$xlsx->sheetName($worksheetIndex)%%'': devuelve el nombre de la hoja referenciada. * ''%%$xlsx->sheetMeta($worksheetIndex = null)%%'': devuelve los metadados de la hoja. * ''%%$xlsx->isHiddenSheet($worksheetIndex)%%'': indica si la hoja referenciada está oculta. * ''%%$xlsx->getStyles()%%'': devuelve los estilos (color, tamaño, bordes...)