Экспорт отчетов в Excel

Только для готовых решений! Пожалуйста, не используйте для вопросов и обсуждений!

Модератор: ykolesnikov

Ответить
rokos
OTRS Новобранец
Сообщения: 2
Зарегистрирован: 12 дек 2012, 10:28

Экспорт отчетов в Excel

Сообщение rokos » 12 дек 2012, 10:50

Метод сохранения файла с расширением txt и переоткрыванием excel viewtopic.php?f=4&t=150 не устраивает. Бережнее надо относится к пользователям, особенно когда среди них встречается начальство :D

Итак что бы не было проблем с кодировками в отчете:

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. Наслаждаемся счастьем

sf51
OTRS Новобранец
Сообщения: 80
Зарегистрирован: 01 авг 2012, 23:31

Re: Экспорт отчетов в Excel

Сообщение sf51 » 10 мар 2013, 13:57

А как установить этот модуль perl CSV?

rokos
OTRS Новобранец
Сообщения: 2
Зарегистрирован: 12 дек 2012, 10:28

Re: Экспорт отчетов в Excel

Сообщение rokos » 11 мар 2013, 06:23

В командной строке набрать:

cpan install Text::CSV::Encoded

egorbright
OTRS Новобранец
Сообщения: 126
Зарегистрирован: 11 янв 2013, 12:06

Re: Экспорт отчетов в Excel

Сообщение egorbright » 24 апр 2013, 07:07

Если кто юзает FreeBSD - рекомендуется ставить все модули Perl из портов. Для того, чтобы, например, с помощью portupgrade содержать их в актуальном состоянии.

Порт называется p5-Text-CSV-Encoded
FreeBSD 7.4 :: OTRS 3.3.11
FreeBSD 9.1 :: OTRS 5

Ответить