我在用PHP将XML转换为XLS代码时遇到了麻烦。
我有将MySql数据导出到XML的PHP代码,也有将XML写入XLS的代码。
这一切都很好,除了当我打开xls文件时,我得到一个错误:
“您尝试打开的文件格式与文件扩展名指定的格式不同。打开文件之前,请确保该文件未损坏且来自受信任的来源。要立即打开文件吗?”
我的代码:
<?php
$file = 'filename';
$url = "$file.xml"; // from xml file
header( "Content-Type: application/vnd.ms-excel" );
header( "Content-disposition: attachment; filename=$file.xls" ); // to xls file
if (file_exists($url)) {
$xml = simplexml_load_file($url);
echo 'Voornaam'."\t" . 'Achternaam'."\t" . 'Geslacht'."\t" . 'Instrument'."\t\n";
foreach($xml->lid as $lid)
{
echo $lid->voornaam."\t" . $lid->achternaam."\t" . $lid->geslacht."\t" . $lid->instrument."\n";
}
}
?>
我发现这与MIME_Types
https://filext.com/faq/office_mime_types.php有关
的header("Content-Type: application/vnd.ms-excel");
是旧版本的Excel中。但是,当我使用xlsx类型时,该文件将完全无法打开。
就像我说的那样,此代码运行良好,将xls格式的Excel文件下载到我的计算机上。但是,如何在没有错误的情况下打开它呢?
如果有人知道如何以该格式打开文件,我也想将文件升级为xlsx格式。
好吧,您的标头和文件名都说“这是XLS文件”-并非如此,它实际上是TSV文件(制表符分隔值)。是的,该消息是准确的:文件扩展名具有误导性。
要编写实际有效的XLS(或XLSX),最简单的方法是使用为您执行此操作的库-这两种格式都是复杂且棘手的。使用PhpExcel(示例代码)取得了最佳效果。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句