XLSファイルをPHP経由で電子メールに添付する必要があります。問題はSpreadsheet_Excel_Writer、HTTPヘッダーをブラウザに送信してからコンテンツを送信することです。APIには、ファイルコンテンツに直接なるSpreadsheet_Excel_Writerような機能はありません。get_content最初にファイルを保存するのではなく、この手順をジャンプして、コンテンツを添付ファイルとして直接保存します。何か案は?
ありがとう。
XLSファイルをPHP経由で電子メールに添付する必要があります。問題はSpreadsheet_Excel_Writer、HTTPヘッダーをブラウザに送信してからコンテンツを送信することです。APIには、ファイルコンテンツに直接なるSpreadsheet_Excel_Writerような機能はありません。get_content最初にファイルを保存するのではなく、この手順をジャンプして、コンテンツを添付ファイルとして直接保存します。何か案は?
ありがとう。
Spreadsheet_Excel_Writerには「ファイルへの書き込み」メソッドはありません。せいぜい、メソッドを使用してクライアントに直接送信できます->send()。これは、PHPの出力バッファリングを使用して出力をキャプチャし、データを文字列として取得して、電子メールに挿入できることを意味します(たとえば、PHPMailerを介して->AddStringAttachment())。
Spreadsheet_Excel_Writerは本質的に水中で死んでいるので、いくつかのマイナーなバグ修正を除いて、PHPExcelへの切り替えを調査することをお勧めします。PHPExcelはExcel2007をサポートしていますが、S_E_WはExcel 5.0(90年代初頭)でスタックしています。また->save()、ファイルに書き込む方法もあります。
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();
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');