Метод сохранения файла с расширением txt и переоткрыванием excel viewtopic.php?f=4&t=150 не устраивает. Бережнее надо относится к пользователям, особенно когда среди них встречается начальство
Итак что бы не было проблем с кодировками в отчете:
1. Инсталируем perl-модуль Text::CSV::Encoded
2. Кастомизируем файлы CSV.pm и AgentStats.pm
3. Делаем изменения:
В CSV.pm
В начале добавить
use Text::CSV::Encoded;
Находим места с # create new csv backend object
my $CSV = Text::CSV->new(
...
Их будет 2-а в файле. Вместо них пишем код:
my $CSV;
if ( !defined $Param{Encode} ) {
$CSV = Text::CSV->new(
{
quote_char => $Param{Quote},
escape_char => $Param{Quote},
sep_char => $Param{Separator},
eol => '',
always_quote => 1,
binary => 1,
keep_meta_info => 0,
allow_loose_quotes => 0,
allow_loose_escapes => 0,
allow_whitespace => 0,
verbatim => 0,
}
);
}
else {
# create new csv backend object
$CSV = Text::CSV::Encoded->new( # ram
{
quote_char => $Param{Quote},
escape_char => $Param{Quote},
sep_char => $Param{Separator},
eol => '',
always_quote => 1,
binary => 1,
keep_meta_info => 0,
allow_loose_quotes => 0,
allow_loose_escapes => 0,
allow_whitespace => 0,
verbatim => 0,
encoding_in => "utf-8", # the encoding comes into Perl ram
encoding_out => $Param{Encode}, # the encoding comes out of Perl ram
}
);
}
В модуле AgentStats.pm находим $Output .= $Self->{CSVObject}->Array2CSV( и правим что бы он выглядел так:
$Output .= $Self->{CSVObject}->Array2CSV(
Head => $HeadArrayRef,
Data => \@StatArray,
Separator => $UserCSVSeparator,
Encode => 'cp1251',
);
4. Наслаждаемся счастьем
Экспорт отчетов в Excel
Модератор: ykolesnikov
-
- OTRS Новобранец
- Сообщения: 126
- Зарегистрирован: 11 янв 2013, 12:06
Re: Экспорт отчетов в Excel
Если кто юзает FreeBSD - рекомендуется ставить все модули Perl из портов. Для того, чтобы, например, с помощью portupgrade содержать их в актуальном состоянии.
Порт называется p5-Text-CSV-Encoded
Порт называется p5-Text-CSV-Encoded
FreeBSD 7.4 :: OTRS 3.3.11
FreeBSD 9.1 :: OTRS 5
FreeBSD 9.1 :: OTRS 5