Не може да се зададе числова стойност, водеща с нула като текст с помощта на phpexcel

Създадох Excel с помощта на PHPExcel библиотека. Всичко върви добре, но когато вмъкна числова стойност, водеща с нула, тогава тя премахна нулата от това число.

                                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);  

Може ли някой да ми каже кое е нещото, което правя грешно в горния код? Има ли друга алтернатива за поправяне на същото.

Чакам отговор.


person user2393886    schedule 12.02.2014    source източник


Отговори (1)


Числата нямат водещи нули. Или имате низ от цифри, първите от които са нули; или форматирате число така, че да се показва с водещи нули.

Или:

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

or

// Set the value as a number formatted with leading zeroes
$objPHPExcel->getActiveSheet()
    ->setCellValue('C3', 0);
$objPHPExcel->getActiveSheet()
    ->getStyle('C3')
    ->getNumberFormat()->setFormatCode('0000');
person Mark Baker    schedule 12.02.2014
comment
Здравейте, благодаря за отговора. Приложих и двете ви решения в нашия код, но нищо не се промени в Excel. Все още прави колона като общ формат. - person user2393886; 14.02.2014
comment
Това трябва да работи за всички писатели; можете ли да добавите код към въпроса си, за да покажете точно как задавате стойностите и стиловете на клетките в момента - person Mark Baker; 14.02.2014
comment
Здравейте, редактирах въпроса си и поставих какво съм направил, за да напиша данни в Excel. Пиша баркод на продукта в колона C и искам тази колона като текст, така че ако някой баркод има 0 в началото, Excel няма да го премахне. - person user2393886; 14.02.2014
comment
Значи option_value['barcode']); е низова стойност или цяло число? - person Mark Baker; 14.02.2014