[PHP-users 27412] Re: Spreadsheet_Excel_Writer の mergeCells について

TAKAGI Masahiro matakagi @ osk2.3web.ne.jp
2005年 11月 8日 (火) 09:15:03 JST


高木です。

At Mon, 7 Nov 2005 11:58:34 +0900 (JST),
MEGUMI Yoshinari wrote:
> 
> 恵と申します。
> (以前質問した、「Spreadsheet_Excel_Writer の setColumn 
> の幅指定について」問題は、結局、手段が無かったので、Arial
> から逆算して数値を導き出しました。)
> 
お役に立てず、申し訳ないです……。

> 今回は、Spreadsheet_Excel_WriterのmergeCellsについて質問
> があります。
> 
> 通常、Excelなどでセルの結合を行うと、セルが結合され、か
> つ、記入された文字列は、結合されたセルの中央に配置されま
> す。
> 
> 他方、Spreadsheet_Excel_WriterのmergeCellsでは、セルはマ
> ージされるものの、writeで記入するテキストは、マージした
> 中央に配置されること無く、指定されたセルに、通常通り配置
> されます。
> (作成されたExcelファイルで、マージしたセルの書式設定を
> 見ても、「配置」−「文字の制御」−「セルを結合する」にチ
> ェックはついていません。)
> 
> mergeCellsで、テキストをマージしたセルの中央(書式設定ど
> おり)に配置するにはどうすればよろしいのでしょうか?(も
> しくは0.8betaで発展途上なので、現状は無理なのでしょうか
> ?)
> 

こちらが参考になるのではないでしょうか?
 http://pear.php.net/bugs/bug.php?id=1239

上のページの最後のコメントにあるサンプルコードを私の環境で動かしてみた
ところ、Excel2002 上で期待通りの結果が表示されることを確認しました。
要は

・setAlign('center') を指定してテキストを write する
・その後で mergeCells する

という順序で行わないといけないということのようです。

-- 
高木 正弘 mailto:matakagi @ osk2.3web.ne.jp


PHP-users メーリングリストの案内