2

Harish Chauhan の Excel Writerを使用して、Excel (xls) ファイルを生成します。

次に、phpExcelReader 2を使用して、Excel Writer クラスによって作成されたファイルを読み取りますが、常にこのエラーが発生します。

The filename myXls.xls is not readable

「myXls.xls」ファイルを MS Excel で開くことができます。しかし、別の名前でファイルを保存すると、正常に読み取ることができます。

コードを調べてみてください。エラーは によって与えられたようです:

if (substr($this->data, 0, 8) != IDENTIFIER_OLE) {
    //echo 'Error';
    $this->error = 1;
    return false;
}

IDENTIFIER_OLE が定義されました:

define('IDENTIFIER_OLE', pack("CCCCCCCC",0xd0,0xcf,0x11,0xe0,0xa1,0xb1,0x1a,0xe1));

私はそれを修正する方法について何も考えていません。助けてください。

御時間ありがとうございます!

4

2 に答える 2

1

Harish Chauhan の ExcelWriter クラスによって生成されたファイルは、実際の OLE BIFF .xls ファイルではなく、HTML マークアップと、Excel 2003 の BIFF の代替として Microsoft によって定義された XML 形式である SpreadSheetML のいくつかの要素が混在しています。 ; しかし、それ以降のバージョンの MS Excel 自体は、この形式の読み取りと書き込みを引き続き行うことができます。MS Excel は HTML マークアップの読み取りにも非常に寛容ですが、最新バージョンでは、ファイル形式が拡張子と一致しない場合に通知が表示されます。

phpExcelReader 2 は Excel BIFF ファイルを読み取るように作成されているため、Harish Chauhan のクラスによって生成された非 OLE/非 BIFF ファイルを読み取ることはできません。

正しい形式でファイルを読み書きしたい場合は、PHPExcelを使用するか、本物の Excel ファイルで動作する他の多くのPHP ライブラリの 1 つを使用することをお勧めします。

于 2012-05-09T19:17:07.837 に答える