Заметки программиста

Каждый будний день, ровно в 9, я пишу о себе, о своей работе и о технологиях web программирования123

Многие для генерации Excel файлов на PHP используют Excel Writer, я давно еще писал о нем. Проблем нет и все хорошо работает до тех пор пока нам не нужно записать текст на родном языке, здесь то все и ломается. Хотя MS Office откроет сгенерированный файл корректно, а вот OpenOffice уже нет и покажет полное уныние неведомой кодировки. На самом деле в этой прекрасной библиотеке есть небольшой баг, и убив кучу времени, я нашел патч это исправляющий, итак:

В файле class.writeexcel_workbook.inc.php исправляем

$this->_codepage          = 0x04E4;

на

$this->_codepage          = 0x04E3;

И в class.writeexcel_format.inc.php

$this->_font_charset   = 0;

на

$this->_font_charset   = 0xCC;

This website uses IntenseDebate comments, but they are not currently loaded because either your browser doesn't support JavaScript, or they didn't load fast enough.

Comments

There are 11 comments for this post.

  1. Максим on Февраль 3, 2010 4:39 пп

    ДА, молодец, но убил чувствую кучу времени на разборы, а все эти "буржуи" никогда о других не думают.

  2. Антонов Андрей on Февраль 3, 2010 4:48 пп

    Это же open source :)

  3. Stepuha on Февраль 4, 2010 7:22 дп

    интересно, но надо разбираться

  4. Andchir on Февраль 22, 2010 10:26 дп

    255 символов в одной "клетке" это ограничение формата XLS или ограничение этого класса? Кому-нидь удалось победить?

  5. Tonyunya on Март 24, 2010 2:30 пп

    Мне кажется в алгоритме допущена ошибка

  6. voen on Апрель 1, 2010 1:32 пп

    Спасибо, теперь можно работать с русским текстом

  7. Алексей on Май 28, 2010 7:11 дп

    большое спасибо!!!!!!!!

  8. Саня on Май 28, 2010 7:59 дп

    простое человеческое спасибо за сэкономленное время.

  9. Oleg on Июнь 22, 2010 2:52 пп

    Спасибо! То, что надо.

  10. newdang on Июль 23, 2010 11:22 дп

    Спасибо, очень помогло!!!

  11. 5nicca on Июль 27, 2010 7:40 пп

    Спасибо огромное! Очень благодарна! :)

Write a Comment

Let me know what you think?