2011-12-21 24 views
8

日時に関する問題に直面しています。私は彼らがエクセルワークブックに登場するようにそれらを読みたいと思っています。私はその後、私は単に何かなど、文字列、日付、時刻PHPExcel:すべての値(日付、時刻、数字)を文字列として読み込みます。

ORなどのすべてのセルをマッピングします(いくつかのフォーマット変換)を行う必要があり、内のtoArray()を使用してシートのすべてのセルを取得する場合

だから、私は信じています負荷のような機能があるかもしれません。これは、ブック内のすべてのデータを書式設定やその他の複雑なものを伴わずに文字列としてロードします。

答えて

11

のtoArray()は次の引数をサポートしています。

/** 
* @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); 

は、彼らがエクセル自体に記載されているとおりに(計算され、フォーマットされた)ワークシートのすべてのセルの値を返します。

したがって、日付は、47239.318ではなく(たとえば、セルの書式マスクによって)21-12月-207 07:30として返されます。他の数値セルは、21,357.00(そのセルの書式マスキングに応じて)として返すことができるので、両刃の剣です。

+4

この質問にお答えいただきありがとうございます。それは正常に働いた。 しかし、私はtoArray()、rangeToArray()のドキュメント(および該当する場合はその他すべて)に '$ objReader-> setReadDataOnly(true) 'を使用しないよう注意する必要があると思います。あなたの提案がうまくいかない理由を理解するまでには、しばらく時間がかかりました。私はこれを理解するためにコードPHPExelに飛び込む必要があります。 – WebSoft

+0

setReadDataOnly(true)についての条件は、toArray()などのメソッドだけでなく、PHPExcel全体に適用されます...適用されるすべての注意を追加すると、ドキュメントに数百の行が追加されます。ただし、ドキュメントの更新プロセスは進行中です。 –

+0

あなたの返事をありがとう。 別の質問:タブで区切られたテキストファイルをPHPEXCELオブジェクトにインポートすることは可能ですか? – WebSoft

関連する問題