Как отображать целые числа с десятичными знаками в файле .csv, созданном с помощью Spreadsheet (), php? - PullRequest
0 голосов
/ 29 мая 2020

В настоящее время я генерирую .csv с помощью этой функции, в основном я просто передаю ей массив для строк, которые нужно создать в файле .csv

public function make_csv_file($data)
    {
        $spreadsheet = new Spreadsheet();

        //create csv file
        $sheet = $spreadsheet->getActiveSheet();
        $sheet->fromArray($data, null, 'A1');

        $writer = new Csv($spreadsheet);

        $writer->setDelimiter(',');
        $writer->setEnclosure('');
        $writer->setLineEnding("\r\n");
        $writer->setSheetIndex(0);

        header('Content-Type: application/csv; charset=UTF-8');
        header('Content-Disposition: attachment; filename="report.csv"');

        return $writer;
    }

Как вы увидите количество 113033, мне нужно покажите это как 113033.00 и 555.13, если это нормально. Деталь заключается в том, что в расположении, которое произошло с ним, если оно идет как 113033.00, но библиотека передает его на 113033

enter image description here

Я пробовал:

  $sheet->getStyle('M1')
    ->getNumberFormat()
    ->setFormatCode(NumberFormat::FORMAT_NUMBER_00);

Но не работает

1 Ответ

0 голосов
/ 29 мая 2020

CSV-файлы не имеют форматирования, это зависит от программы, которая их читает, чтобы интерпретировать вещи так, как они sh. Если вы хотите отформатировать число определенным образом, вы должны сохранить значение в виде строки, чего вы, вероятно, не хотите делать. Альтернативой является использование формата файла, такого как Excel, который поддерживает форматирование.

...