亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 PHPSpreadsheet 導入中跳過第一行

在 PHPSpreadsheet 導入中跳過第一行

PHP
一只甜甜圈 2023-09-15 14:39:14
剛剛開始使用 phpspreadsheet。我試圖弄清楚如何在上傳時跳過 Excel 文件中的標題行。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();  }我可以用上面的腳本做什么來實現這個目標?
查看完整描述

2 回答

?
HUH函數

TA貢獻1836條經驗 獲得超4個贊

您需要檢測,當它是第一行時,像這樣的二進制變量會有所幫助


<?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; }

}

?>


查看完整回答
反對 回復 2023-09-15
?
嗶嗶one

TA貢獻1854條經驗 獲得超8個贊

使用過濾器類。

不要忘記自動加載:

require_once?(?'vendor/autoload.php'?);

創建過濾器:

class FirstRowFilter implements \PhpOffice\PhpSpreadsheet\Reader\IReadFilter

{

? ? public function readCell($column, $row, $worksheetName = '') {

? ? ? ? //? Return true for rows after first row

? ? ? ? return $row > 0;

? ? }

}

適用于讀者:


$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader("Xlsx");


$filterRow = new FirstRowFilter();


$reader->setReadFilter($filterRow);

加載文件:


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

讀取器將僅加載指定行之后的行。


查看完整回答
反對 回復 2023-09-15
  • 2 回答
  • 0 關注
  • 219 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號