带文本的数字单元格格式

时间:2019-08-08 11:45:01

标签: php phpspreadsheet

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

我尝试使用

PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_TEXT

PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_NUMBER

它不起作用。

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

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

这是我的值插入代码:

$sheet->setCellValue('A'.$i, $i-1);
        $sheet->setCellValue('B'.$i, $useric);

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

![result](https://i.imgur.com/6xxKDkv.png)

3 个答案:

答案 0 :(得分:0)

您可以将formatcode设置为@(字符串)

$spreadsheet->getActiveSheet()->getStyle('B')->getNumberFormat()
    ->setFormatCode('@');

答案 1 :(得分:0)

在我的情况下,这在所有工作表中都有效

$spreadsheet ->getDefaultStyle()->getNumberFormat()->setFormatCode('#');

答案 2 :(得分:0)

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

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

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

$spreadsheet->getActiveSheet()
            ->setCellValueExplicit('A1', $someNumber, PHPExcel_Cell_DataType::TYPE_STRING);