問題発生:Spreadsheet_Excel_Writerの環境に問題があるのでしょうか?

このQ&Aのポイント
  • Spreadsheet_Excel_Writerの環境で Deprecated エラーが発生しています。新しいバージョンでは、newを参照で返すことは非推奨となっています。
  • 導入されているバージョンが 0.9.1 である場合でも同じエラーが発生します。
  • 現在のバージョンのメッセージは Deprecated というエラーメッセージです。環境に問題がある可能性があります。
回答を見る
  • ベストアンサー

Spreadsheet_Excel_Writer

require_once("Spreadsheet/Excel/Writer.php"); この一行のみで、以下のメッセージが出力されます。 Deprecated: Assigning the return value of new by reference is deprecated in /opt/lampp/lib/php/Spreadsheet/Excel/Writer/Workbook.php on line 180 Deprecated: Assigning the return value of new by reference is deprecated in /opt/lampp/lib/php/Spreadsheet/Excel/Writer/Workbook.php on line 189 環境に問題があるのでしょうか? ヴァージョンは 0.9.1ですが、0.9.1でも同様になります。

  • PHP
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • 1minn
  • ベストアンサー率57% (52/90)
回答No.1

参照の問題です。 5.3系から? だったか、古い書き方をしてると出てきます。 なので、環境の問題といってしまえばそれまでです。 地道にエラーが出る箇所をつぶすか、エラー自体を吐かなくするかですね。 error_reporting(E_ALL & ~E_DEPRECATED);

yama3939
質問者

お礼

ありがとうございました。 error_reporting(E_ALL & ~E_DEPRECATED); で対応します。 ただ、出力したEXCELのファイルにもエラー出力されて 期待する結果になりませんが、また別に質問します。

関連するQ&A

  • XAMPP on LINUX (MDB2の利用について)

    こんにちは。LINUX上で動かすXAMPPについて質問があります。 これまで、あるアプリの開発をWindows上のXAMPPで行ってきました。ある程度形になったので、実環境を踏まえ。LINUX上で開発することになりました。OSはCentOS5です。 LINUX版のXAMPPをインストールしたのですが、PHPのPearにMDB2が入っていなかったので、Pear installでMDB2をインストールしました。 Windowsで作ったページをLINUX上に移動し、requireパスを変更してから 動作確認を行ったところ、以下のようなエラーがずらずらと出てきました。Windows版では、正常に稼動していました。 なにか問題があるのでしょうか?どなたか解法をご存知の方、ご教授お願いします。 ---------------------- Deprecated: Assigning the return value of new by reference is deprecated in /opt/lampp/lib/php/MDB2.php on line 390 Strict Standards: Redefining already defined constructor for class MDB2_Driver_Common in /opt/lampp/lib/php/MDB2.php on line 1310 Deprecated: Assigning the return value of new by reference is deprecated in /opt/lampp/lib/php/MDB2.php on line 1885 Deprecated: Assigning the return value of new by reference is deprecated in /opt/lampp/lib/php/MDB2.php on line 2572 Deprecated: Assigning the return value of new by reference is deprecated in /opt/lampp/lib/php/MDB2.php on line 2595 Deprecated: Assigning the return value of new by reference is deprecated in /opt/lampp/lib/php/MDB2.php on line 2940 Strict Standards: Declaration of MDB2_Driver_Common::raiseError() should be compatible with that of PEAR::raiseError() in /opt/lampp/lib/php/MDB2.php on line 3317 Strict Standards: Redefining already defined constructor for class MDB2_Result_Common in /opt/lampp/lib/php/MDB2.php on line 3377 Strict Standards: Redefining already defined constructor for class MDB2_Row in /opt/lampp/lib/php/MDB2.php on line 3850 以下略

    • ベストアンサー
    • PHP
  • 【Spreadsheet_Excel_Writer】の【repeatRows】について

    Spreadsheet_Excel_Writerを使ってクライアントにデータをエクセルファイルで ダウンロードさせたいと思っているのですが【repeatRows】の設置が思うようにできません。 以下のようにするときちんと繰り返し印刷されるのですが出来上がったファイルが サーバー側に保存されてしまいます。 *********************************************************** require_once 'Spreadsheet/Excel/Writer.php'; $workbook = new Spreadsheet_Excel_Writer('test.xls'); $worksheet =& $workbook->addWorkSheet(); $worksheet->write(0,0,"ヘッダ"); $worksheet->repeatRows(0); *********************************************************** 以下のようにすると繰り返し印刷されないのですがクライアント側にダウンロードされます。 *********************************************************** require_once 'Spreadsheet/Excel/Writer.php'; $workbook = new Spreadsheet_Excel_Writer(); $worksheet =& $workbook->addWorkSheet();  $workbook->send('test.xls'); $worksheet->write(0,0,"ヘッダ"); $worksheet->repeatRows(0); *********************************************************** 検索で調べましたがわかりませんでした。 【repeatRows】が設定され、クライアント側にダウンロードされるにはどこを修正すればよろしいでしょうか? PHPのバージョンは 4.3.8 です。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • 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(); どうやったら正常に関数が入力できるか、どなたか教えてください。 宜しくお願いします

    • 締切済み
    • PHP
  • SQLiteManagerがブラウザで表示されません。

    SQLiteManagerがブラウザで表示されません。 現在PHPの学習中なのですが、SQLiteManager-1.2.0をダウンロードし設置してみたところブラウザでの表示が出来ません。 フォルダ設置場所→XAMPP/htdocsの中にSQLiteManagerフォルダ PHP.ini設定→extension=php_pdo.dll、extension=php_pdo_sqlite.dll 済。 EclipseでPHPバージョンは5.3を使っております。 apache起動後、URL=http://localhost/SQLiteManager/index.phpを指定しても以下の様なエラーが出てしまいます。 1.Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\SQLiteManager\include\config.inc.php on line 91 2.Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\SQLiteManager\include\SQLite.i18n.php on line 104 3.Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\SQLiteManager\include\common.lib.php on line 370 SQLiteManager\include内の(1)config.inc.php と(2)SQLite.i18n.php と(3)common.lib.php を見てみたのですが何が悪いのか分かりませんでした。 どの様に対処したらよいかお教えいただけないでしょうか? 宜しくお願いします。

    • ベストアンサー
    • PHP
  • 複数のExcelファイルを生成

    いつもお世話になっています。 <環境> Red Hat Enterprise Linux ES v.4 PHP 4.4.2(cli) PHPからExcelファイルを操作するのに エラーが起こってしまっています。 test.php ---------------------------------------- // 新規ワークブックを生成 $WorkBook1 = new Spreadsheet_Excel_Writer('test1.xls'); // 新規ワークシートを生成 $WorkSheet2 =& $WorkBook1->addWorksheet('sheet1'); // 一回閉じる $WorkBook1->close(); // 新規ワークブックを生成 $WorkBook2 = new Spreadsheet_Excel_Writer('test2.xls'); // 新規ワークシートを生成 $WorkSheet2 =& $WorkBook2->addWorksheet('sheet2'); // 閉じる $WorkBook2->close(); としているのですが・・・ Fatal error: Call to undefined function: close() in /usr/local/lib/php/Spreadsheet/Excel/Writer/Workbook.php on line 407 上記のようにライブラリでエラーになってしまいます。 複数のExcelファイルをtest.phpで作成することはできないのでしょうか? すみませんが、ご教授お願いいたします。

    • 締切済み
    • PHP
  • Spreadsheet_Excel_Writerのインストール

    初心者プログラマーです。 今、cakephp1.2を使って開発してるんですが、データの一覧が表示されている画面でその情報をExcelに出力したい言われていて、調べた結果 Spreadsheet_Excel_Writerを使って出力しようと思うんですが、インストールのやり方が分かりません(汗) コマンドプロンプトからインストールするんでしょうか? コマンドプロンプトを起動してどのディレクトリに移動して、どのようなコマンドを打てばいいんでしょうか? 初歩的な質問だとは分かってるんですが、分からないので宜しくお願いします! PHPのバージョンはPHP5になります。

    • 締切済み
    • PHP
  • Pear::QuickFormの代わりになる物

    PHP: 5.3.8を利用しております。 結構前のPHPVerで、HTML_Quickformで、form画面を作成したページを 今回のPHP: 5.3.8に載せて動かしてみたところ ”Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\php\PEAR\HTML\QuickForm.php on line 597” というメッセージが数件表示されるようになりました。 <色々調べてみた結果> ・QuickFormで使用されているメソッド関係が、今後無くなる可能性あり? みたいなことがわかりました。 <対応方法> ・Deprecated: メッセージが表示されないように、設定ファイルの変更 ・作り直し。 がわかりました。 「設定ファイルの変更」は、解決にならないと思うのでする予定はないのですが、 作り直しとして、「QuickForm2」というのものがあることを知りました。 【質問】 QuickForm2で作り直しに挑戦してもよいのですが、stableバージョンが2010年のようなのです。 現在、「QuickForm」のように簡単にフォームが作成できて、PHP: 5.3.8以上で使用しても Deprecated: Assigningメッセージがでない物を探しております。 ご教授おねがいします。

    • ベストアンサー
    • PHP
  • Spreadsheet_excel_Reader データが取り込めない現象

    Spreadsheet_excel_Reader でエクセルデータをとりこんでいます。 しかし、データにの内容により取り込めない現象に悩んでいます。 この現象をまとめてみました。 あるカラム(セルを結合しています)に ’備考5’と全角でいれると取り込めなく。 ’備考 5’と全角でいれると取り込める。 他のカラム(セルを結合しています)に ’備考5’と全角でいれると取り込める。 はじめはシートの容量せいかと思っていましたが、 そうではないようです。 また、違うシートのデータで $excel->sheets[0]['cells'][6][14] ように指定してデータをとってきても、 違うセルのデータがはいっていることもたまにあります。 どなたか、ご教授願えませんでしょうか。 ねむれません。。。。 pear OLE 1.2.2.RC1 pear Spreadsheet_excel_writer 0.9.1 Spreadsheet_excel_Reader Apache2.2.8 port:81 php5.2.5

    • ベストアンサー
    • PHP
  • Spreadsheet::ParseExcelを使ってみたいのですが・・・

    CPANのモジュールよりエクセルからデータを読み込むものがあったので、ぜひつかってみたかったのですが、使い方がよくわかりません。 いろいろ調べまして、とりあえず、下記のようなできあがったサンプルを実行してみたのですが、 ------------------------------------------------------------------ use strict; use Spreadsheet::ParseExcel; my $oExcel = new Spreadsheet::ParseExcel; #1.1 Normal Excel97 my $oBook = $oExcel->Parse('Excel/Test97.xls'); my($iR, $iC, $oWkS, $oWkC); print "FILE :", $oBook->{File} , "\n"; print "COUNT :", $oBook->{SheetCount} , "\n"; print "AUTHOR:", $oBook->{Author} , "\n"; for(my $iSheet=0; $iSheet < $oBook->{SheetCount} ; $iSheet++) { $oWkS = $oBook->{Worksheet}[$iSheet]; print "--------- SHEET:", $oWkS->{Name}, "\n";S for(my $iR = $oWkS->{MinRow} ; defined $oWkS->{MaxRow} && $iR <= $oWkS->{MaxRow} ; $iR++) { for(my $iC = $oWkS->{MinCol} ; defined $oWkS->{MaxCol} && $iC <= $oWkS->{MaxCol} ; $iC++) { $oWkC = $oWkS->{Cells}[$iR][$iC]; print "( $iR , $iC ) =>", $oWkC->Value, "\n" if($oWkC); } } } ------------------------------------------------------------------ 下記のエラーがでてしまいます。 Can't locate Spreadsheet/ParseExcel.pm in @INC (@INC contains: C:/Perl/site/lib C:/Perl/lib .) at excel.txt line 2. BEGIN failed--compilation aborted at excel.txt line 2. 現状はC:\Perl\cpan\build\Spreadsheet-ParseExcel-0.30 というディレクトリにモジュールのフォルダがインストールされるところまではできたのですが、後何が必要なのか、もしくはどこがおかしいのか、見当もつきません。 どなたか教えていただけますでしょうか。 ちなみにwindowsで動かしており、active perlをインストールして、 コマンドプロンプトでやっています。

  • excel mobile ファイル作成?

    いつもお世話になっております。 モバイル携帯で、「Excel Mobile」を使いたいのでgoogleで検索で 下記サンプルを実行しました。 結果、モバイル携帯上ではexcelファイルが一覧表示されましたが、 開くと「ファイル形式が正しくないため、・・・」となってしまい、 ダメでした。 何方か、「Excel Mobile」形式での作成方法をご存知でしたら、ご教授頂けるとありがたいです。 ---------サンプル------------------------- <?php require_once'Spreadsheet/Excel/Writer.php'; $workbook = new Spreadsheet_Excel_Writer(); $tablename = "sampletable"; $worksheet =& $workbook->addWorksheet($tablename); $format =& $workbook->addFormat(); $format->_font_name = mb_convert_encoding("MS UI Gothic", "shift_jis"); for($i=0;$i<100;$i++){ for($j=0;$j<100;$j++){ $worksheet->write($i,$j,"test"); // セルに書き込み } } $workbook->send("test.xls"); // test.xlsに書き込み。 $workbook->close(); ?> -------------------------------------------------------- 以上、よろしくお願いいたします。

    • 締切済み
    • PHP