Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

1.1K
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!