php PhpSpreadsheet 读取日期变数字问题解决
<?php
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Shared\Date;
// 假设你已经有了一个包含日期的Excel文件路径$filePath
$filePath = 'path/to/your/excel/file.xlsx';
$spreadsheet = IOFactory::load($filePath);
$worksheet = $spreadsheet->getActiveSheet();
foreach ($worksheet->getRowIterator() as $row) {
$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false); // 遍历所有单元格,即使它们未被定义
foreach ($cellIterator as $cell) {
if ($cell !== null) {
$value = $cell->getValue();
$dateValue = Date::excelToDateTimeObject($value);
// 如果$dateValue是有效的DateTime对象,则可以格式化输出
if ($dateValue instanceof DateTime) {
echo $dateValue->format('Y-m-d H:i:s') . PHP_EOL;
} else {
echo '不是有效日期';
}
}
}
}
这段代码使用PhpSpreadsheet库读取Excel文件,并将日期单元格的值转换为DateTime对象。如果单元格不包含日期,它会输出一条消息表明不是有效日期。这样可以帮助你确定哪些单元格需要进一步的处理。
评论已关闭