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

Тема в разделе "Как сделать...", создана пользователем Css_Ufa, 27 мар 2013.

  1. Css_Ufa

    Css_Ufa

    Регистр.:
    25 ноя 2008
    Сообщения:
    542
    Симпатии:
    323
    Всем привет!

    Есть форма обратной связи на 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); //Отправляем письмо
    ?>
     
  2. timach

    timach Писатель

    Регистр.:
    4 апр 2013
    Сообщения:
    2
    Симпатии:
    4
    Соедините оба скрипта. Сохраняйте результат работы PHPExcel в переменную $text, а файл не нужно открывать во втором скрипте тогда.