Ширина столбца в PhpSpreadsheet

134
02 мая 2021, 02:40

спасайте, потому, что это хаос блин.

Есть файл excel, в нем акт выполненных работ, с табличкой наименования этих работ. Задача стоит такая, этот файл я использую как шаблон, потом в php подставляю в него нужные данные через библиотеку PhpSpreadsheet и сохраняю как мне нужно. Проблема в том, что ширина первого столбца таблицы после сохранения меняется. Сохраняю в html, там она уже шире (прикреплю скрины). В коде никак не задаю ни ширину, ни другие параметры форматирования. В итоге получаю неадекватно широкую первую колонку. Может кто знает в чем проблема, и как сделать первую колонку такой же как и в самом документе?

Скрин исходного файла excel:

Результат таблицы, когда сохраняю в html:

Сам код:

        $reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReaderForFile($inputFileName);
        $spreadsheet = $reader->load($inputFileName);
        $sheet = $spreadsheet->getActiveSheet();
        $sheet->setCellValue('D4', 'работ № '.$id);
        /*
           Другие $sheet->setCellValue
        */
        $writer = new \PhpOffice\PhpSpreadsheet\Writer\Html($spreadsheet);
        $writer->setUseInlineCss(true);
        header('Content-Disposition: attachment; filename="act.html"');
        $writer->save("php://output");
Answer 1

установка ширины столбца

$spreadsheet->getActiveSheet()->getColumnDimension('A')->setWidth(12);
READ ALSO
Как отправить куки в middleware Laravel?

Как отправить куки в middleware Laravel?

Как отправить куки непосредственно в мидлвере? Вариант

93
Забрать текст между <BR> регулярка php

Забрать текст между <BR> регулярка php

Например, есть произвольные данные вида:

75
Telegram получить id пользователя имея username

Telegram получить id пользователя имея username

как можно получить id пользователя, который не писал в чат боту, и имея только его @username, либо имея его id, который прислал другой пользователь...

117