[PHP-users 27854] Spreadsheet_Excel_Readerの表示形式について
KAWASAKI, Shingo
s.kawasaki @ media-trust.com
2005年 12月 16日 (金) 12:18:52 JST
メディア・トラストの川崎と申します。
いつも拝見させていただいております。
エクセルデータの読込みで、Spreadsheet_Excel_Readerを使用しているのですが、
セルの書式設定の表示形式が『パーセンテージ』のデータの取得がうまくいきません。
表示が「55%」(表示形式を『標準』に戻すと「0.55」)のデータを取得すると、「1%」となってしまいます。
また、表示が「7%」(表示形式を『標準』に戻すと「0.07」)のデータだと、「0%」となってしまいます。
恐らくデータ取得のタイミングで、整数型に四捨五入されているのでは無いかと考えておりますが、
ソースを見てもそれをどこで行っているのかがわかりませんでした。
ソースは以下の様な感じです。
// インスタンス化
$data = new Spreadsheet_Excel_Reader();
// Set output Encoding.
$data->setOutputEncoding('EUC_JP');
$data->setUTFEncoder('mb');
// 指定したEXCELファイルを一括読み込み
$data->read( $file_path );
// 取得
$data->sheets[$worksheet]["cells"][$row][$col];
参考までに、表示形式を『標準』に戻した上でデータの取り込みを行うと、正しく取得できます。
(「0.55」のデータは正しく「0.55」と取得できている)
表示形式が『パーセンテージ』の場合で、取得結果が55(%)でも0.55でも良いですので、
正しくデータを取得できる方法をご存知でしたらご教示願えませんでしょうか?
環境は、
[WEB]
OS:WIN2000server
Apache2.0.55
PHP4.4.1
[DB]
OS:vine linux3.1
Postgres7.6
です。
尚、Spreadsheet_Excel_Readerのバージョンは2iです。
よろしくお願いします。
#COMはなんだか異様に遅い(設定が間違っているのかも知れませんが)のと、
現在実装中の機能がデータの読み込みのみですので、今回は使用しておりません。
PHP-users メーリングリストの案内