2011-12-21 307 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