@Androbim

Как в экспорте через kartik export menu в excel установить ширину столбца?

Доброго времени суток!
Выполняю экспорт в excel, использую kartik/yii2-export и не могу установить ширину столбца:

ExportMenu::widget([
        'dataProvider' => $dataProvider,
        'exportConfig' => [
            ExportMenu::FORMAT_TEXT => false,
            ExportMenu::FORMAT_HTML => false,
            ExportMenu::FORMAT_EXCEL => false,
            ExportMenu::FORMAT_CSV => false,
        ],
        'tableOptions' => [
            'class' => 'table table-striped table-responsive'
        ],
        'columns' => $gridColumns,
        'onRenderSheet' => function($sheet, $widget) {
            $sheet->setCellValue("A5", "Бееееееееееее"); // работает
            $sheet->getColumnDimension('A')->setWidth(240); // не работает
            $sheet->setTitle('Вопросы руководителю'); // работает
        }
    ]);


По-идее, $sheet - это тот объект, который нужен.
Что я делаю не так?
С уважением.
  • Вопрос задан
  • 29 просмотров
Решения вопроса 1
@Androbim Автор вопроса
Прошу прощения, разобрался сам

ExportMenu::widget([
        'dataProvider' => $dataProvider,
        'exportConfig' => [
            ExportMenu::FORMAT_TEXT => false,
            ExportMenu::FORMAT_HTML => false,
            ExportMenu::FORMAT_EXCEL => false,
            ExportMenu::FORMAT_CSV => false,
        ],
        'tableOptions' => [
            'class' => 'table table-striped table-responsive'
        ],
        'columns' => $gridColumns,
        'autoWidth' => false, // Ключевой момент, автоматическую установку ширины нужно сбросить
        'onRenderSheet' => function($sheet, $widget) {
            $sheet->setCellValue("A5", "Бееееееееееее"); 
            $sheet->getColumnDimension('A')->setWidth(50); // теперь все работает
            $sheet->getColumnDimension('D')->setVisible(false);
            $sheet->mergeCells('A4:E4');
            $sheet->setTitle('Вопросы руководителю');
        }
    ]);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы