Я занимаюсь разработкой сайта с использованием YII, PHP.
Я использовал PHPexcel в какой-то части моего веба, и он работает просто отлично. В большинстве случаев файл, созданный phpexcel, может быть открыт libreoffice. Но в одном контроллере он генерирует прекрасный файл xls. Файл можно скачать. Но каждый раз, когда я открываю файл из libreoffice, он показывает импорт текста. Затем файл показывает фактический XML-файл в libreoffice calc. В чем может быть проблема?
Я пытался скопировать и вставить код с работающего контроллера (другого контроллера), но он все еще производит тот же файл (открытый как обычный 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);
Я исправил проблему.
Я добавляю это перед генерацией файла Excel.
ob_end_clean();
ob_start();
Надеюсь, что это будет полезно для кого-то с такой же проблемой.
Других решений пока нет …