Laravel 当用户读取Excel文件时获取字段数据

Laravel 当用户读取Excel文件时获取字段数据,laravel,spout,Laravel,Spout,我正在用喷口读取Excel文件。以下是我的Excel格式: 我试着在Spoute文档中使用一些基本代码: $filePath = '/Users/nhathao/Desktop/employee-test.xlsx'; $reader = ReaderEntityFactory::createXLSXReader(); //$reader = ReaderFactory::create(Type::XLSX); $reader->open($filePath);

我正在用喷口读取Excel文件。以下是我的Excel格式:

我试着在Spoute文档中使用一些基本代码:

$filePath = '/Users/nhathao/Desktop/employee-test.xlsx';
    $reader = ReaderEntityFactory::createXLSXReader();
    //$reader = ReaderFactory::create(Type::XLSX);
    $reader->open($filePath);

    foreach ($reader->getSheetIterator() as $sheet) {
        foreach ($sheet->getRowIterator() as $row) {
            echo "<pre>";
            print_r($row->getCells());
            echo "</pre>";
        }
    }
$filePath='/Users/nhathao/Desktop/employee test.xlsx';
$reader=ReaderEntityFactory::createXLSXReader();
//$reader=ReaderFactory::create(类型::XLSX);
$reader->open($filePath);
foreach($reader->getSheetIterator()作为$sheet){
foreach($sheet->getRowIterator()作为$row){
回声“;
$cells = $row->getCells();
$emailCell = $cells[4]; // 4 because first column is at index 0.
$email = $emailCell->getValue();
打印($row->getCells()); 回声“;
$cells = $row->getCells();
$emailCell = $cells[4]; // 4 because first column is at index 0.
$email = $emailCell->getValue();
} }
当我运行时,我得到了单元格的数据:

要访问这些字段吗?比如$row->email?我想得到那个值并存储在一个变量中,与数据库中的值进行比较

希望你能帮助我


多谢各位

$row->getCells
返回一个
单元格数组
。您可以通过对每个单元格调用
$cell->getValue()
来访问该单元格的值

在您的情况下,如果您想要电子邮件字段,则没有神奇的映射。如果电子邮件列是第5列,则您可以执行以下操作:

foreach ($reader->getSheetIterator() as $sheet) {
    foreach ($sheet->getRowIterator() as $row) {
        $value = $row->toArray();
        $name = $value[1];
    }
}

希望有帮助

您只需将行转换为数组即可获得值。假设您想要获取name的值。如您所见,name的索引是1。你要做的是:


希望它能对您有所帮助。

或者我们可以使用$cell[4]->value来缩短时间。我昨晚发现了这个。无论如何,谢谢你的帮助!另一个缩写是:
$row->getCellAtIndex(4)->getValue()