[PHP-users 28783] Re: PEAR::Spreadsheet_Excel_Writer でセルのフォーマット指定ができない
TAKAGI Masahiro
matakagi @ osk2.3web.ne.jp
2006年 3月 23日 (木) 03:45:39 JST
高木です。
At Wed, 22 Mar 2006 14:42:54 +0900 (JST),
MEGUMI Yoshinari wrote:
>
> 恵と申します。
>
> > Notice: Object of class
> > Spreadsheet_Excel_Writer_Format could not be
> > converted to int in
> > C:\php\PEAR\Spreadsheet\Excel\Writer\Worksheet.php
> > on line 1233
> の該当部分を呼んでいるのがソースのどの部分かわからないの
> で良くわからないのですが、addformatを、
>
おそらく、Spreadsheet_Excel_Writer_Format クラスのオブジェクトと整数値
を無理やり比較しようとしているので Notice が発生しているのでしょう。
http://www.php.net/manual/ja/language.types.integer.php#language.types.integer.casting
にあるように、オブジェクトから整数への変換の仕様は未定義です。
・未定義の仕様を前提としたコードを書いていた
↓
・PHP 5.1 で仕様が変わってしまった
↓
・Notice 発生 :-(
といったところでしょうか。
> > //フォーマットセット
> > $f_title=$excel->addFormat();
> > $f_title->setBorder(1);
> > $f_title->setBold();
> > $f_title->setFgColor("White");
> > $f_title->setBgColor("Black");
> >
> > $f_data=$excel->addFormat();
> > $f_data->setBorder(1);
>
> $f_title=$wk_excel->addFormat(array("Border"=>"1","Bold"=>"1","FgColor"=>"White","BgColor"=>"Black"));
> $f_data=$wk_excel->addFormat(array("Border"=>"1"));
>
> としたら、私の環境ではちゃんと出力されました。
たぶん、恵さんの環境では元質問者のコードそのままでも動作するのではあり
ませんか? というのも、これらのコードは内部的にはまったく同じ処理をして
いるからです。具体的な処理は、
Spreadsheet_Excel_Writer_Workbook クラスの addFormat メソッド
(Workbook.php の 360 行目あたり)
↓
Spreadsheet_Excel_Writer_Format クラスのコンストラクタ
(Format.php の 300 行目あたり)
を順に読んでいくとわかりやすいです。
--
高木 正弘 mailto:matakagi @ osk2.3web.ne.jp
PHP-users メーリングリストの案内