• 締切済み

PHP Spreadsheet Excel Writer

PHP 「Spreadsheet Excel Writer」について 「Spreadsheet Excel Writer」を使ってエクセルファイルを出力したいのですが。 セルに「SUMIF関数」を入力すると、出力されたエクセルには「Syntax error: ,, lookahead: , current char: 12」と 入力されておりこの関数が使えなくて困っています。 手順の詳細は下記です。 $workbook = new Spreadsheet_Excel_Writer("./test.xls"); $worksheet =& $workbook->addWorksheet('week report'); $worksheet->write(0,0,"初月課金"); $worksheet->write(1,0,"初月無料"); $worksheet->write(2,0,"初月無料"); $worksheet->write(3,0,"初月無料"); $worksheet->write(4,0,"初月無料"); $worksheet->write(0,1,100); $worksheet->write(1,1,100); $worksheet->write(2,1,100); $worksheet->write(3,1,100); $worksheet->write(4,1,100); $worksheet->writeFormula(10, 0,"=SUMIF(A1:A5,\"=初月課金\",B1:B5)"); $workbook->close(); どうやったら正常に関数が入力できるか、どなたか教えてください。 宜しくお願いします

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

念のため。 PHPのソースコードはshift-jisで書いてありますか?

jun2323
質問者

お礼

お返事が遅くなって失礼しました。 PHPのソースコードはshift-jisで書いております。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

文法エラーの件は、エラー箇所がいまいちわからないのでなんとも 言えませんが以下のようにするとエラーは出なくなると思います。 <? require_once 'Spreadsheet/Excel/Writer.php'; $workbook = new Spreadsheet_Excel_Writer("-"); $worksheet =& $workbook->addWorksheet('week report'); $worksheet->write(0,0,"初月課金"); $worksheet->write(1,0,"初月無料"); $worksheet->write(2,0,"初月無料"); $worksheet->write(3,0,"初月無料"); $worksheet->write(4,0,"初月無料"); $worksheet->write(0,1,100); $worksheet->write(1,1,100); $worksheet->write(2,1,100); $worksheet->write(3,1,100); $worksheet->write(4,1,100); $worksheet->writeFormula(10, 0,'=SUMIF(A1:A4,"=初月課金",B1)'); $workbook->send("test.xls"); $workbook->close(); exit(); ?> ただSUMIFのような関数はwirteFormulaをつかっても、きちんと結果を 表示できないようです。(私の環境だけかもしれないですけど) 一度セルを編集状態にして更新が必要です。 なにか手があるような気もするのでもうチョイ調べてみますが・・・

jun2323
質問者

お礼

ご回答有難うございます。 さっそくソースをコピペして試してみましたが、やはり結果は変わりませんでした(Syntax error:.....)。 環境によっても結果が違うんでしょうかね。 (因みに自分は[office2003]のexcelです)