台灣最大程式設計社群網站
線上人數
625
 
會員總數:245151
討論主題:189055
歡迎您免費加入會員
討論區列表 >> PHP >> PHPExcel 讀取excel 欄位內的電話問題
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
PHPExcel 讀取excel 欄位內的電話問題
價值 : 5 QP  點閱數:1665 回應數:6

樓主

maxmas
初學者
110 34
812 83
發送站內信

目前有個問題,我讀取一個Excel表,裡面有一個是記載電話的欄位,
但是讀取資料後,會便成以下情況
0921-123456 --> 921123456
0921-123-456 --> 921123456
前面的0會被去掉,分隔橫線也被去掉,怎麼樣才能讀出來還是原來的格式呢?
謝謝

搜尋相關Tags的文章: [ PHPExcel ] , [ 電話 ] , [ 格式 ] ,
本篇文章發表於2016-08-01 16:13
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

彩虹
檢舉此回應
1.你先確認一下 Excel上面的電話是數值格式還是文字格式

2.你是用phpexcel來讀取excel嗎?

3.如果真的無法讀取原本的格式,你自己也可以透過PHP來做後續處理
本篇文章回覆於2016-08-01 16:51
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

彩虹
檢舉此回應
歐看到標題,你是用PHPExcel沒錯
你先檢查一下我說的第1點
本篇文章回覆於2016-08-01 16:57
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

maxmas
檢舉此回應
你好, 怎麼看屬性? 我點按欄位裡面的手機號碼, 上方那列標題欄位裡面顯示一串數字,
我另外有個市話欄位, 點按某市話, 上方那列顯示的一樣是市話,
我想手機那欄位應該是數值, 可是我整串反白選擇格式化為文字, 會全部變成數字, 真煩惱..

我到 stackoverflow 去找看看, 有人說讀取文件前縣設定 $reader->setReadDataOnly(true);
然後我原本 $sheet->getCellByColumnAndRow($column, $row)->getValue()
改為 $sheet->getCellByColumnAndRow(1,5)->getFormattedValue();
他說的意思是這樣只會讀取欄位原始的資料,沒有經過Excel的格式轉換, 但是我讀出來還是一樣沒變
本篇文章回覆於2016-08-01 17:50
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
你可以提供一下你讀取的程式碼。

我記得PHPExcel有可以宣告讀取的欄位格式是字串還是數值。

依照你的問題,因該是發生了將欄位資料用數值化的方式讀取。所以才會發生這樣的事。
本篇文章回覆於2016-08-01 17:59
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
一般來說,確實是要用 getFormattedValue 的方式來取值。不該用getValue

現在的重點是,你的原excel他有無針對該電話欄位做了特定的格式。
理當來說,getFormattedValue 所取到的就是格式化好的值。

我是比較擔心的是,你的excel內該欄位是數值化但是有做了格式處理。所以才會在excel上出現正常的顯示。
但用php讀取時,並無法將其格式讀入。所以呈現了數值化的東西出來。

這時也只剩下用php的sprint再做一次格式化的處理。(如果在無法變更excel原檔的情況下)

我這堛熙‘鰿O因為我的excel是用PHPExcel產生出來的。本身就已經將相關欄位宣告好了格式及類型。
所以當會員下載後。修改了數值再上傳。都是可以直接用getFormattedValue 來讀取的且正常。

如果要處理非用PHPExcel產生的檔案。就得要注意原檔內的格式宣告有哪些。有些可以讀到。有些是不能讀到。
而且excel本身是可以用巨集處理一些公式的資料。

比較怕的是。其處理的資料並無法導入在原檔內運算的情況。就會依照原欄位的預設類型給你處理。
碰上這樣的情況。你也只能乖乖的在php上自行寫格式處理了。
本篇文章回覆於2016-08-01 18:18
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

maxmas
檢舉此回應
我的PHP程式如下



我想到一點,原先的Excel檔案是新版格式xlsx,我那時電腦只有Excel2002版,所以經過2002版轉換開啟後,
我把它存成xls通用格式,這樣有差嗎?
Excel2007版不知道有沒有直接支援xlsx格式?因為我好像有一片2007版的


本篇文章回覆於2016-08-02 17:40
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.