防止 Yii2 kartik 中的科学记数法导出为 excel 单元格格式
Prevent from scientific notation numbers in Yii2 kartik export to excel cell format
我正在使用 kartik export
小部件导出我在 excel
中的网格视图。我可以导出所有数据,但有一个问题,我有一个列名称 imsi
,它是文本形式的,但在导出它之后,该列具有所有相同的数字,即所有 IMSI 数字都相同。见下文
网格列
$gridColumns =[
[
'class'=>'kartik\grid\SerialColumn',
],
'id',
['attribute'=>'imsi','format'=>'text'],
'sim_number'
]
如何设置正确的格式?任何帮助将不胜感激。
因为你的手机数据(imsi)是数字。 excel 或其他一些程序。当单元格的大小小于数字的长度时。他们将数字更改为科学数字或类似的东西。
以防止这样做。你必须增加单元格的宽度。
$gridColumns =[
['class'=>'kartik\grid\SerialColumn'],
'id',
[
'attribute'=>'imsi',
'vAlign'=>'middle',
'width'=>'200px',
'format'=>'raw',// or text
'value'=>function($model){
return $model->imsi.' ';
}
],
'sim_number'
]
更新: 讨论后。我们发现当我们在 value 中添加空格时,它会被强制转换为文本。
PS.
如果您想使用 excel 文件中的这个数字。您必须 trim
才能删除空格。
您可以使用:
$gridColumns =[
['class'=>'kartik\grid\SerialColumn'],
'id',
[
'attribute'=>'imsi',
'contentOptions' => ['cellFormat' => DataType::TYPE_STRING],
],
'sim_number'
]
记得包括
use PhpOffice\PhpSpreadsheet\Cell\DataType;
[
'attribute'=>'imsi',
'value' => function ($model) {
return ' '.$model->imsi;
}
],
我正在使用 kartik export
小部件导出我在 excel
中的网格视图。我可以导出所有数据,但有一个问题,我有一个列名称 imsi
,它是文本形式的,但在导出它之后,该列具有所有相同的数字,即所有 IMSI 数字都相同。见下文
网格列
$gridColumns =[
[
'class'=>'kartik\grid\SerialColumn',
],
'id',
['attribute'=>'imsi','format'=>'text'],
'sim_number'
]
如何设置正确的格式?任何帮助将不胜感激。
因为你的手机数据(imsi)是数字。 excel 或其他一些程序。当单元格的大小小于数字的长度时。他们将数字更改为科学数字或类似的东西。
以防止这样做。你必须增加单元格的宽度。
$gridColumns =[
['class'=>'kartik\grid\SerialColumn'],
'id',
[
'attribute'=>'imsi',
'vAlign'=>'middle',
'width'=>'200px',
'format'=>'raw',// or text
'value'=>function($model){
return $model->imsi.' ';
}
],
'sim_number'
]
更新: 讨论后。我们发现当我们在 value 中添加空格时,它会被强制转换为文本。
PS.
如果您想使用 excel 文件中的这个数字。您必须 trim
才能删除空格。
您可以使用:
$gridColumns =[
['class'=>'kartik\grid\SerialColumn'],
'id',
[
'attribute'=>'imsi',
'contentOptions' => ['cellFormat' => DataType::TYPE_STRING],
],
'sim_number'
]
记得包括
use PhpOffice\PhpSpreadsheet\Cell\DataType;
[
'attribute'=>'imsi',
'value' => function ($model) {
return ' '.$model->imsi;
}
],