将kartik gridview导出到excel时,前导零会被截断

时间:2019-03-01 10:09:33

标签: datagridview yii2 export-to-excel kartik-v

我正在使用yii2 kartik的gridview。在其中有一列,其值类似于R65678,P5675、4568895、006976等。现在发生的是在导出到Excel时发生的一些值中的前导零被截断。因此006976出现了6976。 我该如何解决这个问题? 有什么方法可以从网格配置Excel格式吗?

1 个答案:

答案 0 :(得分:0)

这可能是 excel如何导入数据的问题,而不是gridview导出数据的方式,您可以尝试将数据导出到csv以检查gridview是否正确导出了数据。

当excel导入数据时,它会尝试猜测单元格上哪种类型的值,006976只有数字,因此excel会将其视为数字并去除前导零。

对此的一种解决方法是在输出的值之前添加一个非数字字符,这样excel会将值视为文本并保留所有字符。 Zero width non-joiner为此很好,"\u{200C}"

要将字符添加到gridview的输出中,可以执行以下操作:

<?= GridView::widget([
        'dataProvider' => $dataProvider,
        'columns' => [
            'column1',
            [
                'attribute' => 'column2',
                'value' => function ($data) {
                    return "\u{200C}" . $data->column2;
                },
            ],
            ...
        ],
    ]); ?>