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');