• 締切済み

複数の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
  • 回答数1
  • ありがとう数0

みんなの回答

  • cybert
  • ベストアンサー率56% (18/32)
回答No.1

エラー文をよく読みましょう。 複数のExcelファイルとかは関係ない気がします close();は使えないって言われてますよ

関連するQ&A

  • 【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でexcelデータを作る場合、以下のようなソースがあります。 <? //依存モジュールの読み込み require_once 'Spreadsheet/Excel/Writer.php'; //エクセルシートのオブジェクトを作成 $workbook = new Spreadsheet_Excel_Writer(); //test02.xlsとしてダウンロードを開始するようHTTPヘッダーを送信 $workbook -> send('test02.xls'); //1枚目のワークシートを作成 $worksheet1 =& $workbook -> addWorksheet('社員名簿'); //データを書き出し $worksheet1 -> write(0,0,'名前'); $worksheet1 -> write(0,1,'年齢'); $worksheet1 -> write(0,2,'出身地'); $worksheet1 -> write(1,0,'鈴木太郎'); $worksheet1 -> write(1,1,'32'); $worksheet1 -> write(1,2,'北海道'); $worksheet1 -> write(2,0,'青山辰夫'); $worksheet1 -> write(2,1,'24'); $worksheet1 -> write(2,2,'青森'); //Excelシートの送信 $workbook -> close(); ?> この場合、Excelは指定した名前で生成されるのでしょうか、 それとも、あらかじめ作成したExcelへ書き込みするのでしょうか?

    • ベストアンサー
    • PHP
  • 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
  • Excelに画像挿入

    いつもお世話になっています。 <環境> Red Hat Enterprise Linux ES v.4 PHP 4.4.2(cli) PEARのSpreadsheet_Excel_Writerを使ってExcelの操作をしています。 画像を挿入したいのですが エラーのなってしまって、困っています。 どなたかご教授お願いいたします。 $logo = '/home/ユーザ名/public_html/img/logo.bmp'; // 新規ワークブック作成 $WorkBook = new Spreadsheet_Excel_Writer($BookName); // 新規ワークシート作成 $WorkSheet =& $WorkBook->addWorksheet("sheet1"); // 一応パーミッションの変更もしてみた chmod($BookName, 0777); // 画像挿入 $WorkSheet->insertBitmap(1, 6, $logo); 出来上がった、Excelファイルを見てみると /home/ユーザ名/public_html/img/logo.bmp doesn't appear to be a valid bitmap image. となっていて、画像の挿入ができていません。 よろしくお願いいたします。

    • ベストアンサー
    • 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
  • PHPからExcel出力について

    現在、プログラム(PHP)でデータ出力の機能を作成しているのですが、Excel出力で (1)ブックが開く (2)データを表示 (3)保存 以上の一連の動作はできるのですが、ブックを開いた際にExcel上に「ファイルへのダメージが深刻であり修復は不可能です。数式と値の回復を試みましたが、消失または破損したデータが含まれる可能性があります」といったエラーが表示されてしまいます。 コード変換もしているし、spreadsheet_excel_writerのパッチも当てましたが改善されません。 まだプログラミングが不慣れなもので、解決策が見当たらずに困っています。 どなたかご教授頂けますと助かります。よろしくお願いいたします。 ※申し訳ありません、データを添付していませんでしたので再投稿させていただきました。 ============================================================== //-----------ココから上はデータを取得する関数でデータを取得しています----------- $workbook = new Spreadsheet_Excel_Writer(); $workbook->setVersion(8); $workbook->setVersion(0x0500); $tablename = "sampletable"; $worksheet =& $workbook->addWorksheet($tablename); $worksheet->setInputEncoding("sjis"); $format =& $workbook->addFormat(); $format->_font_name = mb_convert_encoding("MS UI Gothic", "shift_jis"); $format->setBold(); $format->setFgColor(31); //Excelでいうところの見出し部分 $worksheet->write(0,0,"○○"); $worksheet->write(0,1,"○○"); $worksheet->write(0,2,"○○"); $worksheet->write(0,3,"○○"); $worksheet->write(0,4,"○○"); $worksheet->write(0,5,"○○"); $worksheet->write(0,6,"○○"); $worksheet->write(0,7,"○○"); $worksheet->write(0,8,"○○"); //-------ココから下はforeachでデータを表示($worksheet->write)させています-------

    • ベストアンサー
    • PHP
  • PHPのinclude_pathについて

    以下はPEARでExcelファイルを作成し、ダウンロードするプログラムです。 <?php require_once("Spreadsheet/Excel/Writer.php"); $workbook = new Spreadsheet_Excel_Writer('sample3-1.xls'); $worksheet =& $workbook->addWorksheet('サンプル'); $workbook->close(); print('<html>'); print('<head>'); print('<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />'); print('</head>'); print('<body>'); print('<p><a href="./sample3-1.xls">Excelファイル</a></p>'); print('</body></html>'); ?> このプログラムを実行すると、 Warning: require_once(Spreadsheet/Excel/Writer.php) [function.require-once]: failed to open stream: No such file or directory in C:\Inetpub\wwwroot\Test\src\excelsample.php on line 2 Fatal error: require_once() [function.require]: Failed opening required 'Spreadsheet/Excel/Writer.php' (include_path='.;C:\php5\pear') in C:\Inetpub\wwwroot\Test\src\excelsample.php on line 2 というエラーメッセージが出ます。 php.iniには、PEARのパッケージをインストールした際に ;***** Added by go-pear include_path=".;C:\php-5.2.17-Win32-VC6-x86\pear" ;***** と記述されているにも関わらず、エラーメッセージのpathはinclude_path='.;C:\php5\pear'となっており、原因がわかりません。 php.iniはC:\WINDOWSの直下に置いてあります。 PHPのバージョンはphp-5.2.17-Win32-VC6-x86で、Cドライブの直下にインストールしています。 WebサーバーはIISです。 eclipseを使っており、バージョン?はpleiades-e3.6-php_20110326です。 また、phpinfoのinclude_pathはLocalとMasterの両方が.;C:\php5\pearとなっています…。 Configuration File (php.ini) Path C:\WINDOWS Loaded Configuration File C:\WINDOWS\php.ini この2つはこの様になっており、これは2つの場所は一致していないといけないのでしょうか? 解決手段がまったくわかりません。 何かこのエラーについてわかることがあれば教えていただけませんか?

    • 締切済み
    • PHP
  • 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
  • VBAで生成されたExcelファイルの閉じ方

    VBAで以下の処理を書いています。 ・Excelオブジェクトを生成する。 ・Excelファイルをオープンする。 ・各行を読取、Accessのテーブルに挿入する。 ・終了 といった処理を行っています。終了する前に読取ったExcelの オブジェクトを終了しないといけないと思っています。 Workbook.Close Set Workbook = Nothing とやると、Workbook.Closeの所でファイルを保存しますかといった メッセージが出てきます。単純に開いていたファイルを閉じたいだけ なのですが、どういった処理を書けばExcelのファイルを何もメッセージを 表示せずに閉じることができるでしょうか?

  • TextBoxに入力した文字をExcelに書き込むには?

    VB2008を使用しています。 VBフォーム内のTextBox1に入力した内容(例 りんご)をBottanを押すことによりExcelの指定したセル(例 A1)に書き込んで保存する方法はありますでしょうか? 現在、以下のところまでは出来ています。 ' excelを定義 Dim excel As New Microsoft.Office.Interop.Excel.Application ' excel testをファイルから開く Dim book As Microsoft.Office.Interop.Excel.Workbook book = excel.Workbooks.Open("C:\test.xls") ' 1枚目のワークシートを取得 Dim sheet As Microsoft.Office.Interop.Excel.Worksheet sheet = CType(book.Worksheets.Item(1), Microsoft.Office.Interop.Excel.Worksheet) Excelの開放からsheetの取得までは出来たのですが、ここから先がわかりません。よろしくお願いいたします。

専門家に質問してみよう