2010-06-16 62 views
30

我正在嘗試使用PHP創建一個包含電話號碼列表的文件。 工作正常,但是如果電話號碼以零開頭,則數字將從Excel文件中刪除。字符串/數字的正確格式從零開始?

有誰知道如何正確設置格式,使其保持原狀?

回答

68

或者:

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

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

值謝謝你,馬克。 – Francisc 2010-11-13 23:52:12

+2

就像給未來讀者的一張紙條,第二個選項似乎不起作用,它只是將它設置爲一個數字。但第一個選項很好,謝謝。 – 2012-08-26 15:02:47

+0

這兩個選項都適用於我的xlsx和xls文件,還沒有測試過其他的作家 – 2012-11-26 16:20:48

16

明確設置類型的字符串:

$type = PHPExcel_Cell_DataType::TYPE_STRING; 
$sheet->getCellByColumnAndRow($column, $rowno)->setValueExplicit($value, $type); 
1

這是一個老問題,但最近我這個問題,我掙扎以爲如果我在這裏發佈一些額外的信息,它可能有助於未來某人:

雖然上述答案是正確的,但當您刪除位於格式化單元格之前的列或行時,格式會丟失。

,這似乎是resistand到解決的辦法是:

$cellRichText = new \PHPExcel_RichText($worksheet->getCell($cell));       
$cellRichText->createText($cellValue); 
1

如果由於某些原因上述問題的答案不工作,你可以簡單地嘗試來包裝你的數據在引號,像這樣:

setCellValue('A1, '"' . $phone . '" ') 

但是你的價值將會被文件中的引號包圍。

0

使用\t與像"$phone\t"

+0

偉大的解決方案。 – Kalai 2016-09-08 11:38:35

+0

這將在值字段中添加一個選項卡。如果你想複製它沒有空格/製表符和麻煩不是很好。 – CodeBrauer 2016-10-24 08:49:10