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 结果是这样的:

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)