这是我正在使用的代码来设置单元格值.如果数字有分隔符,它可以正常工作.或者/但是当没有分隔符时,它会被保存为int并且前导0被剥离
$sheet->setCellValue($letter[$j].$row_nr,$entity['Phone'], PHPExcel_Cell_DataType::TYPE_STRING);
Run Code Online (Sandbox Code Playgroud)
Mar*_*ker 24
或者:
// Set the value explicitly as a string
$objPHPExcel->getActiveSheet()->setCellValueExplicit('A1', '0029', PHPExcel_Cell_DataType::TYPE_STRING);
Run Code Online (Sandbox Code Playgroud)
要么
// Set the value as a number formatted with leading zeroes
$objPHPExcel->getActiveSheet()->setCellValue('A3', 29);
$objPHPExcel->getActiveSheet()->getStyle('A3')->getNumberFormat()->setFormatCode('0000');
Run Code Online (Sandbox Code Playgroud)
请注意,在第一种情况下,我正在调用setCellValueExplicit()方法,而不是setCellValue()方法.在您的代码中,将PHPExcel_Cell_DataType :: TYPE_STRING传递给setCellValue()没有任何意义,并且简单地忽略该参数.
小智 8
最简单的解决方案是使用setCellValueExplicitByColumnAndRow($ pColumn = 0,$ pRow = 1,$ pValue = null,$ pDataType = PHPExcel_Cell_DataType :: TYPE_STRING),
$PHPExcel->getActiveSheet()->setCellValueExplicitByColumnAndRow($columnPointer, $rowPointer, $value);
Run Code Online (Sandbox Code Playgroud)