2

バックグラウンド

アプリで PHPExcel の IOFactory を使用すると問題が発生します。私の PHPExcel ヘルパーは、ゼロから Excel ドキュメントを生成したい場合に機能します (私のアプリは週に約 20 枚の Excel シートを作成しますが、問題はありません)。

なぜあなたはそれが必要なのですか?

ここで、いくつかのシートを結合する必要があります (アップロードして一般的なシートに生成し、それを誰にでも送信します。問題は、すべてのシートが別の人によって生成されていることです。そのため、これらすべてのシートをアプリにアップロードすると、シートを組み合わせて発送します。

じゃあ何が問題なの?

私のPHPExcelHelper.phpファイルでは、次の関数を追加しました。

public function createMasterFile($ExcelFile) {
    $MasterFile = PHPExcel_IOFactory::load($ExcelFile);
    return $MasterFile;
}

これは基本的に、他のすべてのファイルをスプレッドシートとして追加するファイルを取得することになっています。この質問をガイドとして使用しています。

ただし、次のエラーがスローされます。

Error: Class 'PHPExcel_IOFactory' not found 

これは、そのクラス ( duh )が見つからず、それを含める必要があることを示しています。

何を試しましたか?

-folderにあるファイルrequire_once('PHPExcel/IOFactory.php');の最後に追加して、直接追加しようとしました。運がない。PHPExcel.phpVendors

次に、これを -fileのloadEssentials()-function に追加しようとしましたが、これは次のようなもので、これを追加しました:PHPExcelHelper.php

App::import('Vendor', 'PHPExcel/IOFactory');
if (!class_exists('PHPExcel/IOFactory')) {
    throw new CakeException('Vendor class IOFactory not found!');
}

運がない。

また、コントローラーで使用して呼び出してみましたpublic $helpers = array('PHPExcel','PHPExcel/IOFactory');が、これは存在しないヘルパーを要求しただけです。それで、それも私に運を与えませんでした。

あなたは私たちに何を求めていますか?

これを実際に機能させるための支援。IOFactory を含める論理的な方法と思われる方法を試してみましたが、成功しませんでした。PHPExcel の IOFactory を機能させる方法を教えてください。

4

2 に答える 2

4

あなたのフォルダ構造がこのようなものであると仮定します

App
    Vendor
        PHPExcel
            PHPExcel.php
            PHPExcel
                IOFactory.php

あなたが使用する必要があります

App::import('Vendor', 'PHPExcel', array('file' => 'PHPExcel'.DS.'PHPExcel.php'));
App::import('Vendor', 'PHPExcel_IOFactory', array('file' => 'PHPExcel'.DS.'PHPExcel'.DS.'IOFactory.php'));
于 2013-10-09T10:26:18.660 に答える
1

この行をページの一番上に置く

App::import('Vendor', 'PHPExcel', array('file' => 'excel/PHPExcel.php'));

ベンダーパスを変更してください。

于 2014-07-18T10:12:52.570 に答える