Yii2 Kartik网格导出所有列

标签 yii yii2

我正在使用 kartik 网格,并且想要导出表格中存在的所有列。

问题是我只想在网格中显示几列,但下载 csv 文件中的所有列。

可能吗?

我的代码

<?php  

$gridColumns = [
    ['class' => 'kartik\grid\SerialColumn'],
    [
        'class' => 'kartik\grid\EditableColumn',
        'attribute' => 'Name',        
        'vAlign'=>'middle',
        'headerOptions'=>['class'=>'kv-sticky-column'],
        'contentOptions'=>['class'=>'kv-sticky-column'],
        'editableOptions'=>['header'=>'Name', 'size'=>'255'],
        'format'=>'text',
    ],
    [

        'attribute' => 'Description',        
        'vAlign'=>'middle',
        'headerOptions'=>['class'=>'kv-sticky-column'],
        'contentOptions'=>['class'=>'kv-sticky-column'],     
        'format'=>'text',
    ],
    ['class' => 'kartik\grid\DataColumn',
        'attribute' => 'image',
        'format' => 'html',
        'value' => function($model, $key, $index, $column) {          
              return Html::img('http://localhost/demo/basic_demo/web/www/img/'.$model->image, ['class' => 'abc','width'=>70,'height'=>70]);          
        },
   ],
    [
        'class'=>'kartik\grid\BooleanColumn',
        'attribute'=>'Status', 
        'vAlign'=>'middle',
    ],

    [
        'class' => 'kartik\grid\ActionColumn',
        'dropdown' => true,
        'vAlign'=>'middle',    
        'viewOptions'=>['title'=>'viewMsg', 'data-toggle'=>'tooltip'],
        'updateOptions'=>['title'=>'updateMsg', 'data-toggle'=>'tooltip'],
        'deleteOptions'=>['title'=>'deleteMsg', 'data-toggle'=>'tooltip'], 

     ],
     [
          'class' => '\kartik\grid\ExpandRowColumn',
          'header' => '',
               'value' => function ($model, $key, $index) { 
               return GridView::ROW_COLLAPSED;
          },
          'detailUrl' =>Url::to(['expenses/viewdetail']),
     ],

];



echo GridView::widget([
    'dataProvider'=> $dataProvider,
    'filterModel' => $searchModel,
    'columns' => $gridColumns,
    'autoXlFormat'=>true,
    'responsive'=>true,
    'hover'=>true,
    'condensed'=>true,
    'floatHeader'=>true,
    'bordered'=>true,
   'toolbar'=>['{export}',
                    '{toggleData}',],
   'showPageSummary'=>true,
   'panel'=>[
       'heading'=>'<h3 class="panel-title"><i class="glyphicon glyphicon-globe"></i> '. Html::encode($this->title).'</h3>',
    'type'=>'primary',
    'before'=>Html::a('<i class="glyphicon glyphicon-plus"></i>Create Expenses', ['create'], ['class' => 'btn btn-primary']),
    'showFooter'=>false

    ],
    'pjax'=>true,
    'export'=>[
        'fontAwesome'=>true,
        'showConfirmAlert'=>false,
        'target'=>GridView::TARGET_BLANK,

    ],


]);

?>

最佳答案

您可以在网格列列表中这样做,添加所有列并设置您不想在 GridView 中显示的 'hidden' => true 属性,但此列出现在您的导出 csv 时会显示 csv。例如,假设在这里我向您展示了一个列,您可以为此所有列实现。检查下面的示例代码。

 [

            'attribute' => 'Description',        
            'vAlign'=>'middle',
            'headerOptions'=>['class'=>'kv-sticky-column'],
            'contentOptions'=>['class'=>'kv-sticky-column'], 
            'hidden' => true,
            'format'=>'text',
        ],

现在发生了什么描述列不会显示在 GridView 中,但它出现在导出的文件中。我希望它对你有帮助。

关于Yii2 Kartik网格导出所有列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37122369/

相关文章:

php - Yii2 - 在哪里可以存储公共(public)资源

php - 添加显示同一组gridview yii2下记录数的列

mysql - 如何在 Yii 2 模型中过滤数据?

PHP, Yii2 GridView 过滤关系值

yii - 为什么 Yii2 在 yii\caching\Cache 中使用缩写的方法名称?

php - 在 YII 中,陈词滥调的主题搜索 MANY_MANY ,但到处都有很多信息,都不同,帮助我理解

php - 使用 cpanel (godaddy) 在共享服务器上托管 Yii2 应用程序的步骤

php - jquery-gmap yii

php - yii2:如何使用 innerjoin 在索引( GridView )中添加一列

javascript - 在 yii2 中通过 javascript 加载表单时无法获取数据