phpexcel Untitled Spreadsheet Unknown Creator

skalim

Новичок
Добрый день! проблема в следующем. Создаю excel файл с помощью phpexcel. Файл предлагается к загрузке , но внутри файла одни иероглифы и ни слова по-русски, среди набора иероглифов проглядывают фразы Untitled Spreadsheet Unknown Creator. Это все из-за русских символов, подумал я , тем более где-то я слышал, что такое возможно. Начал проверять кодировки все UTF-8. После этого скачал последнюю версию phpexcel, проблема не исчезла. Взял заменил весь свой код на код из примера,поставляемого с phpexcel:
PHP:
/** Error reporting */
error_reporting(E_ALL);

date_default_timezone_set('Europe/London');

/** PHPExcel */
require_once '../Classes/PHPExcel.php';


// Create new PHPExcel object
$objPHPExcel = new PHPExcel();

// Set properties
$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
							 ->setLastModifiedBy("Maarten Balliauw")
							 ->setTitle("Office 2007 XLSX Test Document")
							 ->setSubject("Office 2007 XLSX Test Document")
							 ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
							 ->setKeywords("office 2007 openxml php")
							 ->setCategory("Test result file");


// Add some data
$objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A1', 'Hello')
            ->setCellValue('B2', 'world!')
            ->setCellValue('C1', 'Hello')
            ->setCellValue('D2', 'world!');

// Miscellaneous glyphs, UTF-8
$objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A4', 'Miscellaneous glyphs')
            ->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç');

// Rename sheet
$objPHPExcel->getActiveSheet()->setTitle('Simple');


// Set active sheet index to the first sheet, so Excel opens this as the first sheet
$objPHPExcel->setActiveSheetIndex(0);


// Redirect output to a client’s web browser (Excel5)
//header('Content-Type: application/vnd.ms-excel');
//header('Content-Disposition: attachment;filename="01simple.xls"');
//header('Cache-Control: max-age=0');

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
exit;
Проблемы это не решило, все те же иероглифы. До этого тот же самый скрипт на локале работал отлично, проблемы начались после переезда на сервер. Может кто сталкивался с подобным? Подскажите, пожалуйста в какую сторону копать?
PS Ах да перед открытием файла появляется сообщение, действительный формат файла отличается от указанного его расширением... Пробовал выгружать в формате xlsx? код опять таки брал из примера, сообщение что файл поврежден и он не открывается вообще.
 

skalim

Новичок
Если по внимательнее прочитать мой пост, и бегло посмотреть код, то можно заметить, что проблема вовсе не в кириллице. Этот вариант я рассматривал, поэтому и поменял свой код на код из примера поставляемого с phpexcel.
PS Гуглом пользоваться я умею, и вообще сначала я всегда пытаюсь найти решение самостоятельно, и только, если действительно не получается спрашиваю на форуме
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Сохрани файл и открой его блокнотом каким-нибудь, обращая внимание на самое начало. 90%, что похапэ испражнился в вывод какими-то сообщениями об ошибках.
 

Тугай

Новичок
Excel5 - там нет юникода. Либо Excel2007, либо сам конвертируй все строки из UTF-8, в то что надо.
 

skalim

Новичок
Excel5 - там нет юникода. Либо Excel2007, либо сам конвертируй все строки из UTF-8, в то что надо.
Я пробовал в 2007, за основу взял опять таки пример постaвляемый с phpexcel. При открытии файла excel выдет ошибку: "Не удается открыть файл, так как расширение или формат являются недопустимыми. Убедитесь, что файл не поврежден и расширение его имени соответствует формату"
 

WMix

герр M:)ller
Партнер клуба
подгрузи и покажи маленький файл с каким нибудь "здравствуй мир" в ячейке А1 хоть глянуть что у тебя там
 

WMix

герр M:)ller
Партнер клуба
я сменил строчку на ->setCellValue('A5', 'привет');
файл открылся
 

Вложения

Тугай

Новичок
В setCellValue('A5', 'Привет') -- 'Привет' - должен быть в utf-8. Либо сохрани скрипты в utf-8, либо пиши

setCellValue('A5', iconv('cp1251', 'utf-8', 'Привет') );
 

skalim

Новичок
решение нашел в буржуй нете. Если кому понадобится
PHP:
ob_end_clean();
. Все оказалось просто. Спасибо всем откликнувшимся.
 
Сверху