我正在使用Laravel Excel上传excel文件。
我在数据行上使用foreach循环来修剪空格,并将它们返回为
$row[$k] = trim($v);但是,Excel将日期存储为数字-这是双精度类型。
这导致许多东西中断,因为在foreach循环之后,这些双精度值被转换为字符串。
修剪双发的正确方法是什么?
发布于 2021-05-13 10:50:38
PHP trim接受一个字符串并返回一个字符串
$str = trim($v);
$row[$k] = (float) $str; // Here if str is non numeric then it will return zero发布于 2021-05-13 10:50:48
尝试像这样转换输出
$row[$k] = (float) trim($v);发布于 2021-05-13 10:54:56
人们已经发布了一个解决方案,如下所示:
$row[$k] = (float) trim($v);然而,并不是每个单元格都是double,我们有null,bool,int,array等等。
我是这样绕过这个问题的:
if (is_string($v)) {
$row[$k] = trim($v);
}因为Excel正确地格式化了所有其他内容,并且只允许在字符串域中使用空格,所以这是可行的。
https://stackoverflow.com/questions/67513283
复制相似问题