PHPExcel - вопрос №749283

При открытии страниции выходят всякие иероглифы, но никак не создает файл эксель, а если изменить строку  Excel5 на Excel2007 то просто белый экран, вот тут файлы index-function.

08.09.13
1 ответ

Ответы

Для того чтобы в Excel корректно отображался текст в формате Unicode(UTF-8), воспользуемся возможностями другого текстового редактора, например Notepad++Допустим изначально мы имеем нечитаемый файл с расширением .csv (или файл формата: .xls, неважно). В Excel, его содержимое выглядит примерно так:

Excel encoding to UTF-8

 

Excel отображает содержимое некорректноИз рисунка видно, что кириллица закодированная в UTF-8 превратилась в абракадабру. Но дело, как Вы увидите дальше, не только в Excel, который всё-таки понимает UTF-8. Но понимает, по-своему, узкоформатно. Итак, начнем.

 

Алгоритм перекодировки в UTF-8 ( Excel 2007, Excel 93-2004):

 

1. Открываем в Notepad++ наш документ:

 

Notepad_encoding_UTF-8_foto

Notepad++ отображает содержимое корректноКак видим, Notepad++ декодирует формат UTF-8 правильно. Смотрим в правый нижний угол редактора. В углу отображается текущая кодировка: ANSI as UTF-8.Именно эта кодировка «ANSI as UTF-8″ и не распознается программой Эксель. Чтобы кодировка распознавалась, нам нужем вариант UTF-8 в чистом виде.

 

Notepad++ encoding ANSI as UTF-8

текущая кодировка ANSI as UTF-8

2. В программе Notepad++ заходим в меню Encoding (в русскоязычной версии текстового редактора слово «Encoding» заменено словом «Кодировка», хотя могу ошибаться) и конвертируем файл в UTF-8:

Обратите внимание что после конвертации на экране ни один символ не изменился. Изменилась только текущая кодировка, указанная в правом нижнем углу. Все изменения скрыты от глаз. Теперь наш файл благополучно закодирован в UTF-8.

 

Notepad++ конвертация в UTF-8

конвертация в UTF-83. Следующий шаг — выбор набора символов. Если вы пишите на русском, то выбираете кириллицу и windows-1251. Снова открываем меню Encoding и далее > Character sets > Cyrillic > Windows-1251:Если Вы пишете на японском, арабском или, например, греческом, то выбираете соответствующий набор символов.

 

Notepad++ encode in Cyrillic Windows-1251

Конвертация в Cyrillic Windows-1251

Если после выбора набора символов появилось диалоговое окно с предложением сохранить файл и предупреждением что изменения необратимы, жмём «Yes».

Может появится еще одно диалоговое окно, если обрабатываемый файл открыт в Excel или в другой программе. Если это окно появилось, нажимаем «Yes» в Notepad++, закрываем наш файл в другой программе. После чего возвращаемся в текстовый редактор и повторяем шаг 3.

 

Notepad++ dialog box foto

ПредупреждениеИ опять, заметьте, после установки нового набора символов ни один символ на экране «не дрогнул».4. А теперь повторяем шаг 2. Снова кодируем наш набор символов в UTF-8. И снова никаких изменений на экране. Всё символы должны читаться.

 

Excel correct encoding UTF-8 foto

Теперь Excel отображает файл в кодировке UTF-8 корректно5. Теперь сохраняем получившийся файл не меняя его расширения. Вот и всё. Можете открывать Ваш файл в Excel и пользоваться. Если Вы всё сделали правильно, то он должен отображаться корректно.Как видите Excel понимает UTF-8, но только в чистом виде. Пока продолжаются войны форматов, нам потребителям ничего другого не остается, как научиться подчинять себе необходимые из форматов.
07.11.16

Alexander

от 500 p.
Читать ответы

Дима

Бесплатно
Читать ответы
Посмотреть всех экспертов из раздела Технологии > PHP
Пользуйтесь нашим приложением Доступно на Google Play Загрузите в App Store