【发布时间】:2016-07-11 22:16:06
【问题描述】:
我在女巫的一个 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");
}
我想在发送邮件之前将附件转换为 excel 2007... 有什么简单的方法可以实现这个
【问题讨论】:
-
这段代码实际上并没有生成一个 excel 文件,它只是将一个 html 标记块 (
$table.='<table></table>';) 写入一个文件,并给它一个扩展名 .xls....根本不是 Excel 文件....如果您想要任何原生 Excel 格式(BIFF、OfficeOpenXML 甚至 SpreadsheetML)的 Excel 文件,请查看一些可以编写原生文件格式的 PHP 库,例如 @987654321 @ -
我因隐私问题替换了内容....但代码会生成一个 excel 文件。
-
我不同意.... html 标记不是原生 Excel 文件格式;除非你在你的宇宙中的某个地方使用魔法,否则 file_put_contents() 不会将 html 标记转换为原生格式的 Excel 文件....仅仅因为你给一个文件的扩展名 .xls,不会使它成为一个 Excel 文件,并且仅仅因为 MS Excel 可以导入 html 标记,并不能使其成为 Excel 格式
-
is there any class that converts the file without actually making the code any slower不。恐怕哈利波特之外的这个宇宙中不存在魔法 -
所以如果需要原生的xlsx格式(也就是OfficeOpenXML格式)那么就需要看看一些写原生格式Excel的库,比如PHPExcel.....是的他们创建文件的速度会更慢(取决于您如何生成原始标记)