带文本的数字单元格格式

c.w*_*wen 11 php phpspreadsheet

我想使用 phpspreadsheet 将数据导出到 Excel,但我的数据是 12 个字符的数字。所以我需要显示所有字符(121212121212)而不是(1.21212E+11)。

我尝试过使用格式

PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_TEXT
Run Code Online (Sandbox Code Playgroud)

PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_NUMBER
Run Code Online (Sandbox Code Playgroud)

这不起作用。

这是我的单元格格式化代码:

$spreadsheet->getActiveSheet()->getStyle('B')->getNumberFormat()
    ->setFormatCode(PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_TEXT);
Run Code Online (Sandbox Code Playgroud)

这是我的值插入代码:

$sheet->setCellValue('A'.$i, $i-1);
        $sheet->setCellValue('B'.$i, $useric);
Run Code Online (Sandbox Code Playgroud)

如果我使用 FORMAT_TEXT 结果是这样的:

![result](https://i.imgur.com/6xxKDkv.png)
Run Code Online (Sandbox Code Playgroud)

小智 19

当使用 PHPSpreadsheet 时,这就是我所做的。

$spreadsheet->getActiveSheet()
            ->getCell('A1')
            ->setValueExplicit(
                $someNumber,
                \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_STRING2
            );
Run Code Online (Sandbox Code Playgroud)

如果你有机会使用 PHPExcel,也许你可以这样做

$spreadsheet->getActiveSheet()
            ->setCellValueExplicit('A1', $someNumber, PHPExcel_Cell_DataType::TYPE_STRING);
Run Code Online (Sandbox Code Playgroud)


小智 6

您可以将格式代码设置为@(字符串)

$spreadsheet->getActiveSheet()->getStyle('B')->getNumberFormat()
    ->setFormatCode('@');
Run Code Online (Sandbox Code Playgroud)