[PHP-users 12661] Re: Spreadsheet_WriteExcel を使ったexcel出力でのセル内改行の方法?
Y.Watanabe
php-users@php.gr.jp
Mon, 20 Jan 2003 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検索のいろんな結果でみかけたのですが、
>自分の上記のコードにどう反映させればよいのか
>いまいちつかめませんでした。
>
>
>