0

XLSファイルをPHP経由で電子メールに添付する必要があります。問題はSpreadsheet_Excel_Writer、HTTPヘッダーをブラウザに送信してからコンテンツを送信することです。APIには、ファイルコンテンツに直接なるSpreadsheet_Excel_Writerような機能はありません。get_content最初にファイルを保存するのではなく、この手順をジャンプして、コンテンツを添付ファイルとして直接保存します。何か案は?

ありがとう。

4

3 に答える 3

4

Spreadsheet_Excel_Writerには「ファイルへの書き込み」メソッドはありません。せいぜい、メソッドを使用してクライアントに直接送信できます->send()。これは、PHPの出力バッファリングを使用して出力をキャプチャし、データを文字列として取得して、電子メールに挿入できることを意味します(たとえば、PHPMailerを介して->AddStringAttachment())。

Spreadsheet_Excel_Writerは本質的に水中で死んでいるので、いくつかのマイナーなバグ修正を除いて、PHPExcelへの切り替えを調査することをお勧めします。PHPExcelはExcel2007をサポートしていますが、S_E_WはExcel 5.0(90年代初頭)でスタックしています。また->save()、ファイルに書き込む方法もあります。

于 2010-07-31T02:34:26.810 に答える
3
require_once'スプレッドシート/Excel/Writer.php';

ob_start();

$ workbook = new Spreadsheet_Excel_Writer();
$ workbook-> setVersion(8、'utf-8');
$ worksheet =&$ workbook-> addWorksheet('sheet 1');
$ worksheet-> setInputEncoding('utf-8');

$ worksheet-> write(0、0、'test');
$ worksheet-> write(1、0、'test2');

$ workbook-> close();

$ sXls = ob_get_contents();

ob_end_clean();
于 2011-05-04T15:51:20.727 に答える
0

OPは最初にファイルを保存することを望んでいませんが、私はこの::send方法を使用して添付するのではなく、インラインで出力する手段を探していました。

PEARtoコンストラクターは引数Spreadsheet_Excel_Writer 0.1をサポートします。[sic0.1] および[sic0.9.4]0.9.4$filename

Spreadsheet_Excel_Writer::close指定すると、インスタンス化されたオブジェクトのメソッドを呼び出すと、生成されたスプレッドシートが指定されたパスに出力されます。

$workbook = new Spreadsheet_Excel_Writer('/path/to/output/file.xls');
//...
$workbook->close();

$data = file_get_contents('/path/to/output/file.xls'); 
//or file_get_contents($workbook->_filename);
unlink('/path/to/output/file.xls');
于 2018-06-29T15:47:38.020 に答える