Herramientas de usuario

Herramientas del sitio


informatica:programacion:php:simplexlsx

SimpleXLSX

Clase de PHP para analizar y leer ficheros de Excel .xlsx (OpenXML)

Desde 2006-2007, Microsoft empezó a usar el formato 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…)
informatica/programacion/php/simplexlsx.txt · Última modificación: por tempwin