我正在尝试读取具有 03/05/2008
格式的 Excel 文件,但是当我使用 PhpSpreadsheet 读取时,它会返回 2008.0
。
有没有办法获取列的原始字符串格式而不是转换为 float ?
try {
$inputFileType = IOFactory::identify($path);
try {
$reader = IOFactory::createReader($inputFileType);
$reader->setReadDataOnly(true);
$valuesSpreadsheet = $reader->load($path);
try {
$spreadsheetArr = $valuesSpreadsheet->getActiveSheet()->toArray();
dd($spreadsheetArr);
}
}
}
编辑:我不想获取特定的单元格并将其转换为时间戳,如下面的评论。我想获取数组 ->toArray()
但获取所有原始字符串格式。
最佳答案
在加载数据之前取出 $reader->setReadDataOnly(true) 行,并且值应该正确显示。如果没有,您也可以尝试以下代码。
$path = 'yourPath';
try {
$inputFileType = \PhpOffice\PhpSpreadsheet\IOFactory::identify($path);
try {
$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader($inputFileType);
$valuesSpreadsheet = $reader->load($path);
try {
$spreadsheetArr = $valuesSpreadsheet->getActiveSheet()->toArray(null, null, true, true);
print '<pre>' . print_r($spreadsheetArr, 1) . '</pre>';
} catch (Exception $e) {
echo $e . PHP_EOL;
}
} catch (Exception $e) {
echo 'Unable to load file ' . $path . PHP_EOL;
echo $e . PHP_EOL;
}
} catch (Exception $e) {
echo 'Unable to locate file ' . $path . PHP_EOL;
echo $e . PHP_EOL;
}
关于PhpSpreadsheet - 获取 d/m/Y 日期的原始字符串值,而不是转换为 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55250892/