2010-07-31 6 views
0

Мне нужно прикрепить XLS-файл к электронной почте через PHP. Проблема заключается в том, что Spreadsheet_Excel_Writer отправляет HTTP-заголовок в браузер, а затем в контент. Spreadsheet_Excel_Writer API не имеет никаких функций, таких как get_content, чтобы напрямую стать файловым содержимым. Я не хочу сначала сохранять файл, просто хочу перейти на этот шаг, сохраняя содержимое напрямую в виде вложения. Любые идеи?Spreadsheet_Excel_Writer получить содержимое файла

Thx много.

ответ

4

В Spreadsheet_Excel_Writer нет метода записи в файл. В лучшем случае вы можете отправить его непосредственно клиенту с помощью метода ->send(). Это означает, что вы МОЖЕТ получить вывод с помощью PHP output buffering и захватить данные как строку, которая затем может быть вставлена ​​в электронную почту (например, через PHPMailer's ->AddStringAttachment()).

Возможно, вы захотите исследовать переход на PHPExcel, так как Spreadsheet_Excel_Writer практически мертв в воде, минус несколько мелких исправлений ошибок. PHPExcel поддерживает Excel 2007, а S_E_W застрял в Excel 5.0 (начало 90-х). Он также имеет метод ->save() для записи в файл.

+0

файл, который я создаю с PEAR-Spreadsheet_Excel_Writer-0.9.3 ... находится в режиме только для чтения, любая идея его решить? – Hytool

3
 
require_once 'Spreadsheet/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(); 
Смежные вопросы