无法使用phpexcel将数字值前导为零作为文本

时间:2014-02-12 05:58:32

标签: phpexcel

我使用PHPExcel库创建了一个excel。 Everthing进展顺利但当我插入数字值前导零时,它从该数字中删除了零。

                                foreach($option['option_value'] as $option_value){
                                $activeSheet->SetCellValue('A'.$row, $product['model']);
                                $activeSheet->SetCellValue('B'.$row, $product['name']);
                                $activeSheet->setCellValueExplicit('C'.$row, '0000', PHPExcel_Cell_DataType::TYPE_STRING);
                                if(empty($option_value['barcode'])){
                                    $activeSheet->SetCellValue('C'.$row, 'NA');
                                }else{
                                    $activeSheet->SetCellValue('C'.$row, $option_value['barcode']);                                        
                                }
                                $activeSheet->SetCellValue('D'.$row, $option_value['name']);
                                $activeSheet->SetCellValue('E'.$row, round($price,2));
                                $activeSheet->SetCellValue('F'.$row, $option_value['quantity']);
                                $row++;
                            }   

我使用了以下内置函数将列类型设置为文本但没有得到:

$activeSheet->getStyle('C1:C'.$row)->getNumberFormat()->setFormatCode('00000');  or  
$activeSheet->getStyle('C1:C'.$row)->getNumberFormat()->setFormatCode('0');  or  
$activeSheet->getStyle('C')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);  

有谁能告诉我在上面的代码中我做错了什么?有没有其他替代方法来修复相同的问题。

等待回复。

1 个答案:

答案 0 :(得分:1)

数字没有前导零。要么你有一串数字,第一个是零;或者格式化一个数字,以显示,带有前导零。

或者:

// Set the value explicitly as a string
$objPHPExcel->getActiveSheet()
    ->setCellValueExplicit('C2', '0000', PHPExcel_Cell_DataType::TYPE_STRING);

// Set the value as a number formatted with leading zeroes
$objPHPExcel->getActiveSheet()
    ->setCellValue('C3', 0);
$objPHPExcel->getActiveSheet()
    ->getStyle('C3')
    ->getNumberFormat()->setFormatCode('0000');