<%INIT>
require HTML::Entities;
+use Spreadsheet::WriteExcel;
+my $xls;
+my $fh;
+open ($fh, ">", \$xls) or die "$!";
+my $workbook = Spreadsheet::WriteExcel->new($fh) or die $!;
+my $worksheet = $workbook->add_worksheet();
+
+
$r->content_type('application/vnd.ms-excel');
my $DisplayFormat = $m->comp('/Elements/ScrubHTML', Content => $Format);
: () } @Format];
}
+my $ws_col = 0;
for (@columns) {
- $m->out(join("\t", map { $_->{header} } @$_)."\n");
+ foreach my $ws_val (map { $_->{header} } @$_) {
+ $worksheet->write_string(0, $ws_col, $ws_val);
+ $ws_col++;
+ }
}
my $Tickets = RT::Tickets->new( $session{'CurrentUser'} );
$Tickets->OrderBy( FIELD => $OrderBy, ORDER => $Order );
}
+my $ws_row = 1;
my $ii = 0;
while (my $row = $Tickets->Next) {
+ $ws_col = 0;
for my $col (@columns) {
- $m->out(join("\t", map {
+ for (@$col) {
my $val = ProcessColumnMapValue($_->{map}, Arguments => [$row, $ii++], Escape => 0);
$val = loc($val) if $_->{should_loc};
# remove tabs from all field values, they screw up the tsv
$val = $no_html->scrub($val);
$val = HTML::Entities::decode_entities($val);
Encode::encode_utf8($val);
- } @$col)."\n");
+ $worksheet->write_string($ws_row, $ws_col, $val);
+ $ws_col++;
+ }
}
+ $ws_row++;
}
+
+$workbook->close;
+close($fh);
+$m->print($xls);
$m->abort();
</%INIT>