导出Excel时,表格中不显示数字0的解决方法
使用maatwebsite/excel
导出excel表格时,发现数字0比较难处理,在导出的数据中经常不显示数字0
,而是显示显示空白
方案一:使用'
符号
这种方式在excel 中也会原样显示`0
,极不协调
"`0"
"'0"
方案二:设置数字格式
use Maatwebsite\Excel\Concerns\FromArray;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\WithMapping;
// 处理数字
use PhpOffice\PhpSpreadsheet\Cell\Cell;
use PhpOffice\PhpSpreadsheet\Cell\DataType;
use PhpOffice\PhpSpreadsheet\Cell\DefaultValueBinder;
class CustomExport extends DefaultValueBinder implements WithHeadings, WithMapping, FromArray
{
private $list;
public function __construct($data)
{
$this->list = $data;
}
public function array(): array
{
return $this->list;
}
// 单独处理数字格式
public function bindValue(Cell $cell, $value)
{
if (is_numeric($value)) {
$cell->setValueExplicit($value, DataType::TYPE_NUMERIC);
return true;
}
return parent::bindValue($cell, $value);
}
public function headings(): array
{
return [
'订单号',
'收货人',
'价格',
'支付时间'
];
}
public function map($row): array
{
return [
$row['order']['no'],
$row['order']['consignee'],
!empty($row['order']['price']) ? $row['order']['price'] : '0',
$row['order']['pay_at'] ?? '', // 支付时间
];
}
}
← 上一篇「开机启动服务」 下一篇「开发环境」 →