im在witch的php项目中工作,我必须使用phpmailer发送带有excel附件的邮件。我对下面代码生成的excel文件的格式有问题。
$table.='<table></table>';
if (file_exists("EXCEL REPORT/".$subject." ".date("M-d-Y").".xls"))
{
unlink("EXCEL REPORT/".$subject." ".date("M-d-Y").".xls");
file_put_contents("EXCEL REPORT/".$subject." ".date("M-d-Y").".xls", $table);
sendmailatt($to,$cc,$subject." ".date("M-d-Y"),"mail",<br>REGIA","EXCEL REPORT/".$subject." ".date("M-d-Y").".xls");
}
else {
file_put_contents("EXCEL REPORT/".$subject." ".date("M-d-Y").".xls", $table);
sendmailatt($to,$cc,$subject." ".date("M-d-Y"),"Questo e' un invio automatico del venduto per agent.<br><br>Saluti,<br>REGIA","EXCEL REPORT/".$subject." ".date("M-d-Y").".xls");
}
我想在发送邮件之前将附件转换为Excel2007。。。有什么简单的方法可以实现这个
下面是一个使用PHPExcel从.xls
转换为.xlsx
的代码示例(它可能会被弃用,但它仍然可以正常工作,尤其是对于Excel5到Excel2007的简单转换):
<?php
$xls_to_convert = 'test.xls';
//------------------------------------------------------------------------------------
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
//These four lines are the entire script
require_once dirname(__FILE__) . '/PHPExcel/Classes/PHPExcel/IOFactory.php';
$objPHPExcel = PHPExcel_IOFactory::load(dirname(__FILE__) . '/' . $xls_to_convert);
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save(str_replace('.xls', '.xlsx', $xls_to_convert));
echo 'File ' . str_replace('.xls', '.xlsx', $xls_to_convert) . ' created in ' , getcwd() , EOL;
上面的例子假设:
1) PHPExcel安装到您的web文件文件夹中(例如home/username/public_html
、xampp/htdocs
、var/www
等)
2) test.xls
也位于同一文件夹中
3) 使用PHPExcel的最新(最终)版本1.8 进行测试
4) 代码取自PHPExcel/Examples/07reader.php
非常感谢Mark Baker的PHPExcel和PhpSpreadsheet应用程序