Laravel-Excel 3 导出值转换数字为文本
我这里是 ‘C’,’D’, ‘H’ 这几列是超过 15 位数字,自动转换为了科学计数法,所以直接绑定这几列即可。
use PhpOffice\PhpSpreadsheet\Cell\Cell;
use PhpOffice\PhpSpreadsheet\Cell\DataType;
use PhpOffice\PhpSpreadsheet\Cell\DefaultValueBinder;
use Maatwebsite\Excel\Concerns\WithCustomValueBinder;
class ExpertMonthFinanceExport extends DefaultValueBinder implements WithCustomValueBinder
{
public function bindValue(Cell $cell, $value)
{
$column = $cell->getColumn();
if (in_array( $column, ['C','D', 'H'])) {
$cell->setValueExplicit($value, DataType::TYPE_STRING);
return true;
}
return parent::bindValue($cell, $value);
}
}
参考文章:问答:maatwebsite/Excel 3.0 导出 Excel 如何设置长数字为文本
官方文档:docs.laravel-excel.com/3.1/exports...
本作品采用《CC 协议》,转载必须注明作者和本文链接
if (is_numeric($value) && strlen($value) > 15) { $cell->setValueExplicit($value, DataType::TYPE_STRING); return true; }
这个方法没用过,一直用的是
WithColumnFormatting
不知道效果是不是一样的。
用FORMAT_NUMBER就正常了