2014-02-28 41 views
8

我試圖改變整列的數據類型(例如:我需要更改爲「M」列爲一般格式)。它在數量字段中顯示爲2.00,我需要將此整列更改爲通用格式,即。顯示爲"2"。但它不改變數據類型。phpexcel - 如何更改整個列的Excel數據類型

下面是代碼:

$objPHPExcel->getActiveSheet() 
    ->setCellValue(
     $aCells[$eExcelColumn] . $eExcelRow, 
     $sCellData , 
     PHPExcel_Cell_DataType::TYPE_NUMERIC 
    ); 

$objPHPExcel->getActiveSheet()->getStyle('M1:M97') 
    ->getNumberFormat() 
    ->setFormatCode('0'); 

如何爲全列「M」爲通用格式

回答

11

PHPExcel不支持列或行的造型做:你需要設置樣式一個range細胞,正是因爲你與

$objPHPExcel->getActiveSheet()->getStyle('M1:M97') 
->getNumberFormat() 
->setFormatCode('0'); 

做的,如果你想要,而不是'0'General格式,然後將其設置爲General相反:

$objPHPExcel->getActiveSheet()->getStyle('M1:M97') 
    ->getNumberFormat() 
    ->setFormatCode('General'); 

$objPHPExcel->getActiveSheet()->getStyle('M1:M97') 
    ->getNumberFormat() 
    ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_GENERAL); 
+0

感謝您的答覆,我有嘗試了以上,但它並沒有改變格式。 –

+0

它應該將格式設置爲您指定的掩碼,無論是「General」還是「0」....您使用的是哪個版本的PHPExcel?你用什麼書寫器來保存你的文件? –

+0

嗨,我使用的版本14.0 –

3

你可以做這樣的柱:

$objPHPExcel->getActiveSheet()->getStyle('M:M') 
    ->getNumberFormat() 
    ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_GENERAL); 

一個完整的工作示例。在A列中的結果有兩個2,列B兩組2.00

$sheet = $objPHPExcel->getActiveSheet(); 

$sheet->getStyle('A:A') 
     ->getNumberFormat() 
     ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_GENERAL); 

$sheet->getStyle('B:B') 
     ->getNumberFormat() 
     ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER_00); 

$sheet->setCellValue('A1', 2); 
$sheet->setCellValue('A2', 2.0); 
$sheet->setCellValue('B1', 2); 
$sheet->setCellValue('B2', 2.0); 

數列和行的選擇,我從我的實際基礎拉到更多的例子:

$objPHPExcel->getActiveSheet()->getStyle('1:1')->getFont()->setBold(true); 
$objPHPExcel->getActiveSheet()->getStyle('A:A')->getNumberFormat()->setFormatCode('yyyy/mm'); 
$objPHPExcel->getActiveSheet()->getStyle('D:D')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); 
$objPHPExcel->getActiveSheet()->getStyle('E:E')->getNumberFormat()->setFormatCode('$#,###'); 
+0

我剛試過這個不起作用。 – blackandorangecat

+0

2014年,當Mark回答他當然是正確的,我確信PHPExcel不支持行或列樣式。但是我檢查了活動代碼並且現在一直在使用它。看到我編輯的答案。 – Klompenrunner

+0

有趣...我只是試過這個,它不適合我。我不知道'PHPExcel'的版本是什麼,但是當我運行''PHPExcel ## VERSION ##,## DATE ##「'時,我得到了'」echo PHPExcel_Calculation_Functions :: VERSION();「'I'我會相信你的作品。 – blackandorangecat