Конвертация PHP в Excel с последующим отправлением на почту

Css_Ufa

Мой дом здесь!
Регистрация
25 Ноя 2008
Сообщения
543
Реакции
325
Всем привет!

Есть форма обратной связи на php - сейчас она просто после заполнения отправляет отчет на почту.

Необходимо сделать, чтобы после формирование php файла, он конвертировался в excel файл и данный файл уже отправлялся на электронку.

Знаю, что конвертировать можно через PHPExcel.

Как мне реализовать отправление на почту данного файла?

И правильно ли я понял что мне придется сделать следующим образом (конвертация файла)
Код:
<?php
/** Error reporting */
error_reporting(E_ALL);
 
/** Include path **/
ini_set('include_path', ini_get('include_path').';../Classes/');
 
/** PHPExcel */
include 'PHPExcel.php';
 
/** PHPExcel_Writer_Excel2007 */
include 'PHPExcel/Writer/Excel2007.php';
 
// Create new PHPExcel object
echo date('H:i:s') . " Create new PHPExcel object\n";
$objPHPExcel = new PHPExcel();
 
// Set properties
echo date('H:i:s') . " Set properties\n";
$objPHPExcel->getProperties()->setCreator("Maarten Balliauw");
$objPHPExcel->getProperties()->setLastModifiedBy("Maarten Balliauw");
$objPHPExcel->getProperties()->setTitle("Office 2007 XLSX Test Document");
$objPHPExcel->getProperties()->setSubject("Office 2007 XLSX Test Document");
$objPHPExcel->getProperties()->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.");
 
 
// Add some data
echo date('H:i:s') . " Add some data\n";
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->SetCellValue('A1', '$client1'); // $client1 - заполняет клиент в форме
$objPHPExcel->getActiveSheet()->SetCellValue('B2', '$client2');
$objPHPExcel->getActiveSheet()->SetCellValue('C1', '$client3');
$objPHPExcel->getActiveSheet()->SetCellValue('D2', '$client4!');
 
// Rename sheet
echo date('H:i:s') . " Rename sheet\n";
$objPHPExcel->getActiveSheet()->setTitle('Simple');
 
 
// Save Excel 2007 file
echo date('H:i:s') . " Write to Excel2007 format\n";
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
 
// Echo done
echo date('H:i:s') . " Done writing file.\r\n";

UPDATE

Нашел скрипт по отправлению вложенного файла, но как его совместить с данным php файлом. Помогите пожалуйста

Сам скрипт отправки:
Код:
<?php
  $filename = "form.txt"; //Имя файла для прикрепления
  $to = "myrusakov@mail.ru"; //Кому
  $from = "myrusakov@gmail.com"; //От кого
  $subject = "Test"; //Тема
  $message = "Текстовое сообщение"; //Текст письма
  $boundary = "---"; //Разделитель
  /* Заголовки */
  $headers = "From: $from\nReply-To: $from\n";
  $headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"";
  $body = "--$boundary\n";
  /* Присоединяем текстовое сообщение */
  $body .= "Content-type: text/html; charset='utf-8'\n";
  $body .= "Content-Transfer-Encoding: quoted-printablenn";
  $body .= "Content-Disposition: attachment; filename==?utf-8?B?".base64_encode($filename)."?=\n\n";
  $body .= $message."\n";
  $body .= "--$boundary\n";
  $file = fopen($filename, "r"); //Открываем файл
  $text = fread($file, filesize($filename)); //Считываем весь файл
  fclose($file); //Закрываем файл
  /* Добавляем тип содержимого, кодируем текст файла и добавляем в тело письма */
  $body .= "Content-Type: application/octet-stream; name==?utf-8?B?".base64_encode($filename)."?=\n";
  $body .= "Content-Transfer-Encoding: base64\n";
  $body .= "Content-Disposition: attachment; filename==?utf-8?B?".base64_encode($filename)."?=\n\n";
  $body .= chunk_split(base64_encode($text))."\n";
  $body .= "--".$boundary ."--\n";
  mail($to, $subject, $body, $headers); //Отправляем письмо
?>
 
Соедините оба скрипта. Сохраняйте результат работы PHPExcel в переменную $text, а файл не нужно открывать во втором скрипте тогда.
 
Назад
Сверху