2013-03-06 64 views
0

我想閱讀與Phpexcel的Excel文件,並插入數據到數據庫中,我可以閱讀一切,它的工作正常,但我不能閱讀電話號碼與領先零Phpexcel 當我看到我的數據庫所有保存的電話號碼沒有前導零像這樣:0212365498保存爲212365498閱讀電話號碼與領先零phpexcel

+0

您是否嘗試將它們讀爲字符串而不是整數? – Peon 2013-03-06 07:51:14

+0

我認爲你不能在數據庫中存儲以零開頭的數字(假設你的數據庫字段是INT)。嘗試將字段的類型從INT更改爲VARCHAR。這可能有所幫助:http://stackoverflow.com/questions/2786193/allow-number-to-start-with-zero-when-stored-in-mysql-integer-field – Makesh 2013-03-06 07:55:36

+0

我試圖讀取字符串,但它不是工作 – 2013-03-06 08:07:40

回答

2

如果您從CSV文件導入,您可以使用值活頁夾來保留任何前導零。這是我如何實施我的修復程序。

創建了一個名爲 'BindValueAsString'

class BindValueAsString extends PHPExcel_Cell_DefaultValueBinder implements PHPExcel_Cell_IValueBinder 
{ 
    public function bindValue(PHPExcel_Cell $cell, $value = null) 
    { 
     $cell->setValueExplicit($value, PHPExcel_Cell_DataType::TYPE_STRING); 
     return true; 
    } 
} 

設定值粘結劑加載CSV文件

$objReader = PHPExcel_IOFactory::createReader('CSV'); 
PHPExcel_Cell::setValueBinder(new BindValueAsString()); 
$objPHPExcel = $objReader->load('file.csv'); 
$worksheet = $objPHPExcel->getActiveSheet(); 
$dataAsString = $worksheet->toArray(); 

而這之前類。或者您可以升級到版本1.8.1,其中前導零是固定的here