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

Y.Watanabe php-users@php.gr.jp
2003年1月20日 15:22:28 +0900


わたなべです。
ありがとうございました。
下記のコードで期待通りにできたようです。
set_text_wrap();
なんてメソッドがちゃんとあるわけですね。
#ソースをよく読もう・・・。
<?php
 //require_once('OLEwriter.php');
 //require_once('BIFFwriter.php');
 require_once('Worksheet.php');
 require_once('Workbook.php');
/**** 画面でやるときはこのコメントアウトははずす(CLIでやるときはいらないから 
 function HeaderingExcel($filename) {
 header("Content-type: application/vnd.ms-excel");
 header("Content-Disposition: attachment; filename=$filename" );
 header("Expires: 0");
 header("Cache-Control: must-revalidate, post-check=0,pre-check=0");
 header("Pragma: public");
 }
 // HTTP headers
 HeaderingExcel('test.xls');
****/
 // Creating a workbook
 $workbook = new Workbook("-");
 $worksheet1 =& $workbook->add_worksheet('First One');
 $worksheet1->write_string(1, 1, "abc"); // B2のセルに"abc"という文字列が入る
 $formatot =& $workbook->add_format();
 $formatot->set_text_wrap();
 $worksheet1->write_string(2, 1, "d\nef", $formatot ); // B3のセルに"d(セル内改行)ef"が入る
 $workbook->close();
?>
Y.Watanabe wrote on 2003年01月19日 21:59
with Subject: [PHP-users 12630] Spreadsheet_WriteExcel を使ったexcel出力でのセル内改行の方法?
>わたなべです。
>>Linux環境のWEB/DBサーバにおいて、
>PostgreSQLのデータをPHP経由でMs-Excel形式にしてダウンロードさせる
>というアプリをつくるべく奮闘しておりますが、
>細かいところで詰まっております。
>>どなたかお知恵ありませんか?
>>要は、セル内改行(Alt+Enterキーってやつ)が
>うまくできないのです。
>(なんでそんな凝ったことすんの?、というツッコミはさておき^^;)
>>>Windwos環境ならCOM関数であっさりできそうですが、
>UNIX環境でもphpでExcel出力できるものを探すのは苦労しました。
>> Spreadsheet_WriteExcel
> http://phpclasses.psbweb.com/browse.html/package/767.html
>という、結構イケてそうな(気がする)ライブラリを見つけたので、
>それを使おうとしております。
>>下記が試したテストスクリプトです。
>(上記のパッケージに入っていたテストスクリプトを参考につくった)
>><?php
> //require_once('OLEwriter.php');
> //require_once('BIFFwriter.php');
> require_once('Worksheet.php');
> require_once('Workbook.php');
>>/**** 画面でやるときはこのコメントアウトははずす(CLIでやるときはいらないから)
> function HeaderingExcel($filename) {
> header("Content-type: application/vnd.ms-excel");
> header("Content-Disposition: attachment; filename=$filename" );
> header("Expires: 0");
> header("Cache-Control: must-revalidate, post-check=0,pre-check=0");
> header("Pragma: public");
> }
> // HTTP headers
> HeaderingExcel('test.xls');
>****/
>> // Creating a workbook
> $workbook = new Workbook("-");
> $worksheet1 =& $workbook->add_worksheet('First One');
> $worksheet1->write_string(1, 1, "abc"); // B2のセルに"abc"という文字列が入る
> $worksheet1->write_string(2, 1, "d\nef"); // B3のセルに"d(セル内改行)ef"と
> //いう文字を入れたいが文字化けてしまう
> $workbook->close();
>?>
>>>上記のスクリプトをtest.phpとして保存し、
>>$ php test.php > test.xls 
>>としてできあがったファイルをEXCELで見ると、
>B3のセルの改行文字が化けてしまいます。
>(しろいしかくみたいな文字に・・・)
>>「エクセルのセル内改行は、0x0aコードがうんぬん・・・」
>という情報はgoogle検索のいろんな結果でみかけたのですが、
>自分の上記のコードにどう反映させればよいのか
>いまいちつかめませんでした。
>>>

AltStyle によって変換されたページ (->オリジナル) /