[PHP-users 12638] Re: Spreadsheet_WriteExcel を使ったexcel出力でのセル内改行の方法?

Mashiki php-users@php.gr.jp
Mon, 20 Jan 2003 10:26:07 +0900


 Mashikiです。

>Linux環境のWEB/DBサーバにおいて、
>PostgreSQLのデータをPHP経由でMs-Excel形式にしてダウンロードさせる
>というアプリをつくるべく奮闘しておりますが、
>細かいところで詰まっております。
 :
 :
>UNIX環境でもphpでExcel出力できるものを探すのは苦労しました。
>
>    Spreadsheet_WriteExcel
>    http://phpclasses.psbweb.com/browse.html/package/767.html
>という、結構イケてそうな(気がする)ライブラリを見つけたので、
>それを使おうとしております。

面白いライブラリを見つけましたね。
僕も早速、入れてみました。

>$ php test.php > test.xls 
>
>としてできあがったファイルをEXCELで見ると、
>B3のセルの改行文字が化けてしまいます。
>(□みたいな文字に・・・)

プログラム的には、

>  $worksheet1->write_string(2, 1, "d\nef");
>   // B3のセルに"d(セル内改行)ef"という文字を入れたい

でいいみたいです。Excelには正しくデータが渡っています。
実際、Excelのセルの書式設定で「折り返して全体を表示する」
を有効にすればキレイに改行されます。
またALT+Enterで直接改行を手入力し、このプロパティーを無効に
しても同じ□が再現できますね。

>「エクセルのセル内改行は、0x0aコードがうんぬん・・・」
>という情報はgoogle検索のいろんな結果でみかけたのですが、
>自分の上記のコードにどう反映させればよいのか
>いまいちつかめませんでした。

問題は「セルの書式設定をPHPからどうに行うか」ではないで
しょうか。


このライブラリ時間があればもっと掘ってみたい...