我正在使用YII,PHP开发一个网站。
我一直在网络的某些部分使用PHPexcel,它运行得很好。在大多数情况下,由phpexcel创建的文件可以由libreoffice打开。但是在一个控制器中它会生成一个精细的xls文件。该文件可以下载。但每次我从libreoffice打开文件时它都会显示文本导入。然后该文件显示libreoffice calc中的实际xml文件。可能是什么问题呢?
我尝试从工作控制器(另一个控制器)复制并粘贴代码,但它仍然生成相同的文件(以普通xml打开)。
可以从PHP修复它还是来自libreoffice的错误?可以在MS.excel中成功打开错误文件。
感谢您的回答。
这些是生成的xml格式。从工作中看起来是一样的。
<?xml version="1.0" encoding="UTF-8"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40">
<Worksheet ss:Name="generatedName">
这是我的代码。
$data = array();
$data = array(
1 => array ('Report Anomali Price'),
);
$data = array_merge($data, array(
array('Item Code','Name', 'Item Price','Unit Code','Location Apotek','Item Price Gondo', 'Unit Code Gondo', 'Percentage Price', 'Date'),
));
$data = array_merge($data, array(
array(''),
array('Export By : ' .Yii::app()->user->name .' At : ' .date("d/m/Y H:i:s") .' - Copyright ' .date('Y') ),
));
Yii::import('application.extensions.phpexcel.JPhpExcel');
$title = "AnomaliPriceReport_".date('dmY');
$xls = new JPhpExcel('UTF-8', false, $title);
$xls->addArray($data);
$xls->generateXML($title);
答案 0 :(得分:0)
我已经解决了这个问题。 我在生成excel文件之前添加了这个。
ob_end_clean();
ob_start();
希望对有同样问题的人有用。