2011-12-21 68 views
8

我面臨的日期和時間問題。我希望他們能夠像在Excel工作簿中一樣閱讀。PHPExcel:以字符串形式讀取所有的值(日期,時間,數字)

所以,我相信,如果我得到使用指定者(),那麼我應該簡單地做一些事情(某些格式轉換),將映射所有細胞作爲字符串,日期,時間等

或片的所有單元格可能有像加載這樣的函數,它將工作簿中的所有數據加載爲字符串,而不用任何格式化或其他複雜的東西。

回答

11

指定者()支持以下參數:

/** 
* @param mixed $nullValue   Value returned in the array entry if a cell doesn't 
*          exist 
* @param boolean $calculateFormulas Should formulas be calculated? 
* @param boolean $formatData   Should formatting be applied to cell values? 
* @param boolean $returnCellRef  False - Return a simple array of rows and 
*          columns indexed by number counting from zero 
*          True - Return rows and columns indexed by their 
*          actual row and column IDs 
*/ 

所以

toArray(NULL,TRUE,TRUE); 

將完全按照它們出現在Excel本身的工作表(計算和格式化)返回所有單元格值。

因此,日期將返回爲(例如)21-Dec-2011 07:30而不是47239.318(取決於單元格的格式掩碼)。其他數字單元格可以返回21,357.00(取決於該單元格的掩碼格式),因此它是一把雙刃劍。

+4

感謝您回答這個問題。它運行良好。 但我認爲toArray(),rangeToArray()(以及適用於所有其他應用程序)的文檔應包含警告,以避免使用'$ objReader-> setReadDataOnly(true)'。我花了一段時間才弄清楚,爲什麼你的建議不起作用。我必須深入代碼PHPExel來弄清楚。 – WebSoft 2011-12-21 23:53:02

+0

有關setReadDataOnly(true)的限制條款適用於整個PHPExcel,不僅適用於像toArray()這樣的方法......在適用的地方添加註意事項時,會在文檔中添加數百行。但是,文檔更新過程正在進行中。 – 2011-12-21 23:57:47

+0

感謝您的回覆。 另一個問題:是否可以將製表符解壓文本文件導入到PHPEXCEL對象中? – WebSoft 2011-12-22 02:05:34