使用 Spout 读取 Excel 文件时获取字段数据
Get field data when using Spout to read an Excel file
我正在使用 Spout 读取 Excel 文件。这是我的 Excel 的样子:
我尝试使用 Spout 文档中的一些基本代码来执行此操作:
$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>";
}
}
当我 运行 时,我从单元格中得到以下数据:
有什么方法可以访问这些字段吗?我可以使用 $row->email 之类的东西吗?我想获取该值并将其存储在一个变量中,以便将其与我在数据库中的值进行比较。
希望你能帮助我!
非常感谢!
$row->getCells
returns Cells
的数组。您可以通过调用 $cell->getValue()
来访问每个单元格的值。
在您的情况下,如果您想要电子邮件字段,则没有魔法映射。如果电子邮件列是第5列,那么你可以这样做:
$cells = $row->getCells();
$emailCell = $cells[4]; // 4 because first column is at index 0.
$email = $emailCell->getValue();
希望对您有所帮助!
您只需将行转换为数组即可获得价值。假设您想要获取名称的值。如您所见,name 的索引是 1。您需要做的是:
foreach ($reader->getSheetIterator() as $sheet) {
foreach ($sheet->getRowIterator() as $row) {
$value = $row->toArray();
$name = $value[1];
}
}
希望对您有所帮助。
我正在使用 Spout 读取 Excel 文件。这是我的 Excel 的样子:
我尝试使用 Spout 文档中的一些基本代码来执行此操作:
$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>";
}
}
当我 运行 时,我从单元格中得到以下数据:
有什么方法可以访问这些字段吗?我可以使用 $row->email 之类的东西吗?我想获取该值并将其存储在一个变量中,以便将其与我在数据库中的值进行比较。
希望你能帮助我!
非常感谢!
$row->getCells
returns Cells
的数组。您可以通过调用 $cell->getValue()
来访问每个单元格的值。
在您的情况下,如果您想要电子邮件字段,则没有魔法映射。如果电子邮件列是第5列,那么你可以这样做:
$cells = $row->getCells();
$emailCell = $cells[4]; // 4 because first column is at index 0.
$email = $emailCell->getValue();
希望对您有所帮助!
您只需将行转换为数组即可获得价值。假设您想要获取名称的值。如您所见,name 的索引是 1。您需要做的是:
foreach ($reader->getSheetIterator() as $sheet) {
foreach ($sheet->getRowIterator() as $row) {
$value = $row->toArray();
$name = $value[1];
}
}
希望对您有所帮助。