Автор Тема: Помогите с Spreadsheet::Writeexcel плиз  (Прочитано 5651 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн green_forest

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 16
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Помогите с Spreadsheet::Writeexcel плиз
« : 29 Октября 2004, 02:36:14 »
Использую весию модуля 2.11, пробовал также 0.43
Perl 5.8.4, Linux, KOI8-R

Создаю файл, пишу по-ангийски - все ок.
По-русски - козябрики.

Где рыть? Очень надо однако...

Оффлайн Wyclef

  • hello_worlder
  • Старожил
  • ****
  • Сообщений: 307
  • +0/-0
  • 2
    • Просмотр профиля
    • http://thug.narod.ru
Помогите с Spreadsheet::Writeexcel плиз
« Ответ #1 : 29 Октября 2004, 03:43:50 »
В дистрибутиве есть примеры:
ParseExcel: sample/dmpExU.pl
WriteExcel: examples/unicode_cp1251.pl
« Последнее редактирование: 29 Октября 2004, 03:49:42 от Wyclef »
It\'s nice to be important, but it\'s more important to be nice!

Оффлайн green_forest

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 16
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Помогите с Spreadsheet::Writeexcel плиз
« Ответ #2 : 29 Октября 2004, 11:17:08 »
Спасибо за ответ.

Из доки:
...
unicode_cp1251.pl       Russian:  CP1251      to utf8 in perl 5.8.
...

Как я понял, пример про преобразование CP1251->UTF8
Или нет?

А по-другому никак? Только преобразовав строку в UTF8?
У меня пока нет полной поддержки UTF8.

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Помогите с Spreadsheet::Writeexcel плиз
« Ответ #3 : 29 Октября 2004, 12:14:14 »
Цитировать
green_forest:
У меня пока нет полной поддержки UTF8.

У тебя и не нужно, достаточно того что у Perl есть.
perldoc encoding
The documentations is your friend

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
Помогите с Spreadsheet::Writeexcel плиз
« Ответ #4 : 29 Октября 2004, 12:46:05 »
green_forest

Вообще я бы рекомендовал вернуться на версию 0.43, в ней с кириллицей работать гораздо проще...

А так в версиях 2.х - одна вещь, из-за которой до сих пор пользуюсь 0.43 - невозможность создания листов с русскими названиями...

Оффлайн green_forest

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 16
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Помогите с Spreadsheet::Writeexcel плиз
« Ответ #5 : 29 Октября 2004, 14:41:02 »
Сори, объясните, а то туплю...
--Делаю
use encoding "koi8-u";

my $workbook = Spreadsheet::WriteExcel->new("test.xls");
my $worksheet = $workbook->add_worksheet("My list");
$worksheet->write(\'A1\', "Пользователь");

$workbook->close;

--В ответ
Wide character in print at /usr/lib/perl5/vendor_perl/5.8.4/Spreadsheet/WriteExcel/Workbook.pm line 205.

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Помогите с Spreadsheet::Writeexcel плиз
« Ответ #6 : 29 Октября 2004, 15:01:14 »
Дай мне строку 205 из /usr/lib/perl5/vendor_perl/5.8.4/Spreadsheet/WriteExcel/Workbook.pm
The documentations is your friend

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
Помогите с Spreadsheet::Writeexcel плиз
« Ответ #7 : 29 Октября 2004, 15:01:26 »
green_forest
Объясняю:
Читаем мануал модуля 2.11, по сравнению с 0.43 много изменений методов:

http://search.cpan.org/~jmcnamara/Spreadsheet-WriteExcel-2.11/lib/Spreadsheet/WriteExcel.pm
в части write_unicode
« Последнее редактирование: 29 Октября 2004, 15:10:14 от Phoinix »

Оффлайн green_forest

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 16
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Помогите с Spreadsheet::Writeexcel плиз
« Ответ #8 : 29 Октября 2004, 15:07:48 »
Workbook.pm
...
        print {$self->{_filehandle}} $data;
...

Оффлайн green_forest

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 16
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Помогите с Spreadsheet::Writeexcel плиз
« Ответ #9 : 29 Октября 2004, 15:37:33 »
Спасибо, ребята, что натолкнули меня на правильное решение!

$worksheet->write_unicode(\'A1\', $map->to_unicode(koitowin("Пользователь")));

koitowin - koi8->cp1251
Нашел только карту к CP1251, посему двойная перекодировка.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28