X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=rt%2Fshare%2Fhtml%2FSearch%2FResults.xls;h=d9d83568cbcecd5acee0408f3c7fe7d20eff4866;hb=feba5016425b52740c29653383343d0d1887a592;hp=8146376dbcd36c9f501d95c990d0270372f5ef64;hpb=f3cd3aadcbc246ab457f7aea9d7326008a35b13e;p=freeside.git diff --git a/rt/share/html/Search/Results.xls b/rt/share/html/Search/Results.xls index 8146376db..d9d83568c 100644 --- a/rt/share/html/Search/Results.xls +++ b/rt/share/html/Search/Results.xls @@ -54,7 +54,9 @@ $Format => undef <%INIT> use Spreadsheet::WriteExcel; +use OLE::Storage_Lite; 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"'); @@ -69,6 +71,11 @@ my $default_format = $workbook->add_format( 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, @@ -97,12 +104,26 @@ my $WriteRow = sub { # 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++; }; +$m->notes('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,