4

プロジェクトでExcel5を使用しています。私はすでに次のコードを試しました:

$objPHPExcel->getActiveSheet()->getStyle('A1')->getFill()->getStartColor()->getARGB();

$objPHPExcel->getActiveSheet()->getStyle('A1')->getFill()->getEndColor()->getARGB();

しかし、これらのコードは間違った色を返しています。赤の代わりに常にgetStartColor()戻っFFFFFFFFて、FF000000のために。getEndColor()

何が欠けているのかわかりません。誰かがこれを理解するのを手伝ってくれる?

4

2 に答える 2

6

setReadDataOnly(TRUE)は、セルからデータのみを読み取ることを意味しますが、スタイリングはありません...また、背景色はスタイリングの一部であるため、リーダーはファイルをロードするときに背景色を無視します...塗りつぶしスタイルがそうでない場合ロードされた後、$ objPHPExcel-> getActiveSheet()-> getStyle('A1')-> getFill()を呼び出すと、デフォルトの塗りつぶしスタイルと色が返されます。

setReadDataOnly(FALSE)を使用してファイルをロードすると、機能することがわかります。

編集

これは、PHPExcelの範囲をはるかに超えています。ほとんどのスタイリングを含め、すべてがDDEを介して入力されるため、外部実行可能ファイルTOS.exeが入力されるまで、基になる塗りつぶしの色はプレーンです(PHPExcelのgetFillカラー呼び出しによって返されます)。データを作成し、それに応じてスタイルを設定します。ここでの唯一のオプションは、COMを使用して、ブックがMSExcel自体で実行されるようにすることです。

于 2012-08-24T17:42:03.293 に答える
0

2番目のコード:

$objPHPExcel->getActiveSheet()->getStyle('A1')->getFill()->getEndColor()->getARGB();

動作します。カラー16進コード(FF0000)を返すだけです。

RGB=赤青緑=xxxx xx

FF0000は実際には赤です。

于 2012-08-24T17:26:51.323 に答える