Deb*_*Deb 5 php excel export-to-excel laravel
我有一个导出到 excel 的按钮,可以下载 excel 文件。但是,当我单击它时,它会显示错误为“尝试访问 int 类型值上的数组偏移量”
我的代码是这样的:
public static function dataTypeForValue($pValue = null)
{
// Match the value against a few data types
if ($pValue === null) {
return PHPExcel_Cell_DataType::TYPE_NULL;
} elseif ($pValue === '') {
return PHPExcel_Cell_DataType::TYPE_STRING;
} elseif ($pValue instanceof PHPExcel_RichText) {
return PHPExcel_Cell_DataType::TYPE_INLINE;
} elseif ($pValue[0] === '=' && strlen($pValue) > 1) { //error comes in this line
return PHPExcel_Cell_DataType::TYPE_FORMULA;
} elseif (is_bool($pValue)) {
return PHPExcel_Cell_DataType::TYPE_BOOL;
} elseif (is_float($pValue) || is_int($pValue)) {
return PHPExcel_Cell_DataType::TYPE_NUMERIC;
} elseif (preg_match('/^[\+\-]?([0-9]+\\.?[0-9]*|[0-9]*\\.?[0-9]+)([Ee][\-\+]?[0-2]?\d{1,3})?$/', $pValue)) {
$tValue = ltrim($pValue, '+-');
if (is_string($pValue) && $tValue[0] === '0' && strlen($tValue) > 1 && $tValue[1] !== '.') {
return PHPExcel_Cell_DataType::TYPE_STRING;
} elseif ((strpos($pValue, '.') === false) && ($pValue > PHP_INT_MAX)) {
return PHPExcel_Cell_DataType::TYPE_STRING;
}
return PHPExcel_Cell_DataType::TYPE_NUMERIC;
} elseif (is_string($pValue) && array_key_exists($pValue, PHPExcel_Cell_DataType::getErrorCodes())) {
return PHPExcel_Cell_DataType::TYPE_ERROR;
}
return PHPExcel_Cell_DataType::TYPE_STRING;
}
}
Run Code Online (Sandbox Code Playgroud)
什么可以解决这个问题..?
小智 10
在 PHPExcel 文件“DefaultValueBinder.php”中,替换第 82 行:
} elseif ($pValue[0] === '=' && strlen($pValue) > 1) {
Run Code Online (Sandbox Code Playgroud)
具有以下内容:
} elseif (0 === strpos($pValue, '=') && strlen($pValue) > 1) {
Run Code Online (Sandbox Code Playgroud)
小智 4
(!is_int($pValue) && $pValue[0] === '=' && strlen($pValue) > 1)应该管用。$pValue[0]不适用于整数,因此在继续之前请检查它是否是 int。
| 归档时间: |
|
| 查看次数: |
10798 次 |
| 最近记录: |