繁体   English   中英

phpexcel生成的xls文件作为纯XML Linux打开

[英]phpexcel-generated xls file open as plain xml linux

我正在使用YII,PHP开发网站。

我在网络的某些部分中一直在使用PHPexcel,而且效果很好。 在大多数情况下,可以通过libreoffice打开phpexcel创建的文件。 但是在一个控制器中,它会生成一个很好的xls文件。 可以下载文件。 但是每次我从libreoffice打开文件时,它都会显示文本导入。 然后,该文件在libreoffice calc中显示实际的xml文件。 可能是什么问题呢?

我试图从工作控制器(另一个控制器)中复制并粘贴代码,但是它仍然产生相同的文件(以纯xml打开)。

可以通过PHP修复它,还是来自libreoffice的bug? 可以在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);

我已经解决了这个问题。 我在生成excel文件之前将其添加。

ob_end_clean();
ob_start();

希望这对有相同问题的人有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM