====== 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...)