Я попытался создать отчет в формате Excel и отправить электронное письмо с помощью библиотеки PHPExcel. Мне нужно выровнять html в файле excel, поэтому я загружаю свой вывод как html в свою локальную папку. Но я не могу преобразовать файл html в файл Excel, когда мы попробовали код ниже, сгенерированный файл Excel показывает только имя файла html, а не содержимое таблицы html.
$this->data['report1']=$this->report_m->get_report();
$this->data['report_details']=$this->report_m->get_report_details();
$this->load->library('PHPExcel/iofactory');
$html=$this->load->view('viewfilename',$data,TRUE);
$tmpfile = time().'.html';
file_put_contents($tmpfile, $html);
//by using above code html file created successfully
//method 1 for reading html
$reader = new PHPExcel_Reader_HTML;
$content = $reader->load($tmpfile);
$objWriter = PHPExcel_IOFactory::createWriter($content, 'Excel2007');
$objWriter->save('excelfile.xlsx');
//method 2 for reading html
$objPHPExcel = new PHPExcel();
$excelHTMLReader = IOFactory::createReader('HTML');
$excelHTMLReader->loadIntoExisting($tmpfile, $objPHPExcel);
$objPHPExcel->getActiveSheet()->setTitle('report');
$writer = IOFactory::createWriter($objPHPExcel, 'Excel2007');
$writer->save("nameoffiledrrr.xls");
unlink($tmpfile);






Отвечать :
$html=$this->load->view('sendmail_template',$data,TRUE);
include("simple_html_dom.php");
$rowRecords = str_get_html($html);
//echo $html;
$filename = "Report-".$dtimeFile.".xls";
$path='./reports/';
$csv_handler = fopen ($path.$filename,'w');
fwrite ($csv_handler,$rowRecords);
fclose ($csv_handler);
$msg='Report';
$file = $path.$filename;
$file_size = filesize($file);
$handle = fopen($file, "r");
$content = fread($handle, $file_size);
fclose($handle);
$content = chunk_split(base64_encode($content));
$uid = md5(uniqid(time()));
$file_path=base_url('reports/'.$filename);
$config = Array(
'protocol' => 'smtp',
'smtp_host' => 'ssl://smtp.googlemail.com',
'smtp_port' => 465,
'smtp_user' => '[email protected]',
'smtp_pass' => 'xxxxxxxxxx',
'mailtype' => 'html',
'charset' => 'iso-8859-1'
);
$this->load->library('email', $config);
$this->email->set_newline("\r\n");
// Set to, from, message, etc.
$email = $result->to_addr;
$info = "[email protected]";
$infoname = "info";
$message = "PFA Report";
$this->email->set_mailtype("html");
$this->email->from($info, $infoname);
$this->email->to($email);
$subject = 'Report';
$this->email->subject($subject);
$this->email->message($message);
$this->email->attach($file_path);
$r = $this->email->send();
if (!$r) {
echo "Failed to send email:" . $this->email->print_debugger(array("header"));
} else {
echo "Mail Sent";
}
Не уверен, правильно ли я понял ваш вопрос. Я думаю, у вас есть данные в вашей таблице mysql, и вы хотите создать отчет Excel и отправить его по электронной почте?