use Spreadsheet::WriteExcel;
use List::Util qw( max );
+use Date::Format qw( time2str );
$r->content_type('application/vnd.ms-excel');
$r->header_out('Content-Disposition' => 'attachment;filename="Results.xls"');
color => 'black',
size => 10,
);
+my $date_format = $workbook->add_format(
+ color => 'black',
+ size => 10,
+ num_format => 'YYYY-MM-DD', #configurable?
+);
my $title_format = $workbook->add_format(
color => 'black',
size => 10,
# record row/column sizes
$height = max( $height, scalar(@lines) );
$width[$item] = max( $width[$item], map {length} @lines );
+
+ if ( scalar(@lines) == 1 and
+ $lines[0] =~ /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}$/ ) {
+
+ $worksheet->write_date_time($row, $item, $lines[0], $date_format);
+ next;
+ }
+
$worksheet->write($row, $item, join("\n", @lines), $default_format);
}
$worksheet->set_row($row, $height * 14);
$row++;
};
+my $FormatDate = sub {
+ my $DateObj = shift;
+ return '' if $DateObj->Unix == 0;
+ return time2str('%Y-%m-%dT%H:%M', $DateObj->Unix);
+};
+
# Write everything to the worksheet
$m->comp('Elements/ResultsStructuredView',
Query => $Query,
Format => $Format,
WriteHeader => $WriteHeader,
WriteRow => $WriteRow,
+ FormatDate => $FormatDate,
);
# Set column widths