2016-03-24 59 views
2

即时通讯工作在女巫的一个php项目中,我必须发送一封带有Excel附件的邮件,邮件即时通讯使用phpmailer。 我有一个与下面的代码生成的Excel文件的格式有问题。PHP将Excel文件从“.xls”转换为“.xlsx”

$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"); 
    } 

我想发送邮件之前附着到2007年的Excel转换... 是有实现这一

+2

此代码实际上并不产生一个Excel文件,它只是写入HTML标记的块('$表=“

”;')到一个文件,给它一个.xls ....的扩展名,它不是一个Excel文件....如果你想要一个任何本地Excel格式的Excel文件(BIFF,OfficeOpenXML,甚至是SpreadsheetML),那么看看一些可以编写本机文件格式的PHP库,例如[PHPExcel](https://github.com/PHPOffice/PHPExcel) –

+0

我替换隐私问题的内容....但代码生成一个excel文件。 – SnakeFoot

+1

我不同意.... html标记不是本机Excel文件格式;除非你在宇宙中的某处使用魔法,否则file_put_contents()不会将html标记转换为本机格式的Excel文件....仅仅因为您给文件扩展名为.xls,不会将其作为Excel文件,并且仅仅因为MS Excel可以导入html标记,并不会使其成为Excel格式 –

回答

0

PHPExcel没有简单的方法。你可以找到读取和写入文件的文件here