Это может быть проблемой с тем, как Excel импортирует данные больше, чем то, как экспортирует их gridview, вы можете попробовать экспортировать данные в csv, чтобы проверить, правильно ли экспортирует gridview их.
Когда Excel импортирует данные, он пытается угадать, какой тип значения в ячейке, 006976
имеет только цифры, поэтому Excel будет рассматривать его как число и удалит начальные нули.
Исправление для этогочтобы к значению, которое экспортируется, был добавлен нечисловой символ, то в Excel это значение будет обрабатываться как текст и сохранятся все символы.Для этого отлично подходит без объединения , "\u{200C}"
.
Чтобы добавить символ к выводу сетки, вы можете сделать это:
<?= GridView::widget([
'dataProvider' => $dataProvider,
'columns' => [
'column1',
[
'attribute' => 'column2',
'value' => function ($data) {
return "\u{200C}" . $data->column2;
},
],
...
],
]); ?>