Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

1.1K
Vistas
Omitir la primera fila en la importación de PHPSpreadsheet

Acabo de empezar a trabajar con phpspreadsheet. Estoy tratando de averiguar cómo omitir la fila del encabezado en mi archivo de Excel al cargar.

 require '../vendor/autoload.php'; if (pathinfo($_FILES['upexcel']['name'], PATHINFO_EXTENSION) == 'csv') { $reader = new \PhpOffice\PhpSpreadsheet\Reader\Csv(); } else { $reader = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx(); } $spreadsheet = $reader->load($_FILES['upexcel']['tmp_name']); $worksheet = $spreadsheet->getActiveSheet(); $sql = "INSERT INTO `testCommission` (`One`, `two`, `three`, `four`, `five`, `six`, `seven`) VALUES (?, ?, ?, ?, ?, ?, ?)"; foreach ($worksheet->getRowIterator() as $row) { // Fetch data $cellIterator = $row->getCellIterator(); $cellIterator->setIterateOnlyExistingCells(false); $data = []; foreach ($cellIterator as $cell) { $data[] = $cell->getValue(); }

¿Qué puedo hacer para lograr esto con el script anterior?

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Debe detectar, cuando es la primera fila, una variable binaria como esta ayuda

 <?php require '../vendor/autoload.php'; if (pathinfo($_FILES['upexcel']['name'], PATHINFO_EXTENSION) == 'csv') { $reader = new \PhpOffice\PhpSpreadsheet\Reader\Csv(); } else { $reader = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx(); } $spreadsheet = $reader->load($_FILES['upexcel']['tmp_name']); $worksheet = $spreadsheet->getActiveSheet(); $sql = "INSERT INTO `testCommission` (`One`, `two`, `three`, `four`, `five`, `six`, `seven`) VALUES (?, ?, ?, ?, ?, ?, ?)"; $isheader = 0; foreach ($worksheet->getRowIterator() as $row) { // Fetch data if($isheader > 0) { $cellIterator = $row->getCellIterator(); $cellIterator->setIterateOnlyExistingCells(false); $data = []; foreach ($cellIterator as $cell) { $data[] = $cell->getValue(); } } else { $isheader = 1; } } ?>
over 4 years ago · Santiago Trujillo Denunciar

0

Utilice una clase de filtro. Ver documentos: https://phpspreadsheet.readthedocs.io/en/latest/topics/reading-files/#reading-only-specific-columns-and-rows-from-a-file-read-filters

No olvides la carga automática:

 require_once ( 'vendor/autoload.php' );

Crear un filtro:

 class FirstRowFilter implements \PhpOffice\PhpSpreadsheet\Reader\IReadFilter { public function readCell($column, $row, $worksheetName = '') { // Return true for rows after first row return $row > 0; } }

Aplicar al lector:

 $reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader("Xlsx"); $filterRow = new FirstRowFilter(); $reader->setReadFilter($filterRow);

Cargar archivo:

 $spreadsheet = $reader->load($file);

El lector solo cargará filas después de la fila especificada.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda