【问题标题】:Return row in loop with phpspreadsheet使用phpspreadsheet循环返回行
【发布时间】:2018-11-06 13:43:21
【问题描述】:

我有一张 Excel 表格,我只想循环遍历一行。现在我得到了这个:

$reader->setReadDataOnly(TRUE);
$spreadsheet = $reader->load("KEVIN Call Monkey ALLE BEDRIJVEN 29-10-18 Export_bedrijven_20181030_105432.xlsx");

$worksheet = $spreadsheet->getActiveSheet();


foreach ($worksheet->getRowIterator() as $row) {
    $cellIterator = $row->getCellIterator();
    $cellIterator->setIterateOnlyExistingCells(FALSE); // This loops through all cells,
                                                       //    even if a cell value is not set.
                                                       // By default, only cells that have a value
                                                       //    set will be iterated.
    foreach ($cellIterator as $cell) {
        echo 
             $cell->getValue();

    }

}

这是返回每一行。我只想显示一行。在这种情况下,行“J”。

更新代码:

require 'vendor/autoload.php';

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use PhpOffice\PhpSpreadsheet\Reader\IReader;
use \PhpOffice\PhpSpreadsheet\IOFactory;

$inputFileName  =  'KEVIN Call Monkey ALLE BEDRIJVEN 29-10-18 Export_bedrijven_20181030_105432.xlsx';
$inputFileType = 'Xlsx';
/**  Create a new Reader of the type defined in $inputFileType  **/
$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader($inputFileType);
/**  Load $inputFileName to a Spreadsheet Object  **/
$spreadsheet = $reader->load($inputFileName);

$worksheet = $spreadsheet->getActiveSheet();
$rows = $worksheet->toArray();

var_dump($rows);

我有这个代码,来自以下答案之一。我仍然在浏览器中收到 http 错误 500。

【问题讨论】:

    标签: php excel


    【解决方案1】:

    使用简单的方法。

    在数组中转换,然后像这样读取所有键和值

    $inputFileName  =   FILE PATH;
    $inputFileType = 'Xlsx';
    /**  Create a new Reader of the type defined in $inputFileType  **/
    $reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader($inputFileType);
    /**  Load $inputFileName to a Spreadsheet Object  **/
    $spreadsheet = $reader->load($inputFileName);
    $worksheet = $spreadsheet->getActiveSheet();
    $rows = $worksheet->toArray();
    
    foreach($rows as $key => $value) {
        // key is the row count(starts from 0)
        // array of values
        foreach($value as $iter => $column_value) {
            //$column_value the value of row
        };
    };
    

    如果您只想在 $row 的 var_dump 中读取列 'J',请找到列 'J' 的 $key。

    【讨论】:

    • $rows = $worksheet->toArray(); var_dump($rows);我添加了这段代码,但现在我在浏览器中收到错误 500
    • 在 $rows = $worksheet->toArray(); 之前试试这个完整的代码$inputFileName = 完整路径文件; $inputFileType = 'Xlsx'; /** 创建 $inputFileType 中定义的类型的新 Reader/ $reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader($inputFileType); / 将 $inputFileName 加载到电子表格对象 **/ $spreadsheet = $reader->load($inputFileName); $worksheet = $spreadsheet->getActiveSheet();
    • 文件开头的广告 error_reporting(-1);这将避免错误 500 并显示错误
    猜你喜欢
    • 1970-01-01
    • 2016-07-12
    • 1970-01-01
    • 1970-01-01
    • 2018-10-10
    • 2018-05-27
    • 2013-04-04
    • 2011-08-09
    • 2015-11-04
    相关资源
    最近更新 更多