diff options
Diffstat (limited to 'httemplate/search/elements/search-xls.html')
-rw-r--r-- | httemplate/search/elements/search-xls.html | 85 |
1 files changed, 0 insertions, 85 deletions
diff --git a/httemplate/search/elements/search-xls.html b/httemplate/search/elements/search-xls.html deleted file mode 100644 index 8323f55de..000000000 --- a/httemplate/search/elements/search-xls.html +++ /dev/null @@ -1,85 +0,0 @@ -<% $data %> -<%init> - -my %args = @_; -my $type = $args{'type'}; -my $header = $args{'header'}; -my $rows = $args{'rows'}; -my %opt = %{ $args{'opt'} }; - -#http_header('Content-Type' => 'application/excel' ); #eww -#http_header('Content-Type' => 'application/msexcel' ); #alas -#http_header('Content-Type' => 'application/x-msexcel' ); #? - -#http://support.microsoft.com/kb/199841 -http_header('Content-Type' => 'application/vnd.ms-excel' ); -http_header('Content-Disposition' => - 'attachment;filename="'.($opt{'name'} || PL($opt{'name_singular'}) ).'.xls"'); - -#http://support.microsoft.com/kb/812935 -#http://support.microsoft.com/kb/323308 -$HTML::Mason::Commands::r->headers_out->{'Cache-control'} = 'max-age=0'; - -my $data = ''; -my $XLS = new IO::Scalar \$data; -my $workbook = Spreadsheet::WriteExcel->new($XLS) - or die "Error opening .xls file: $!"; - -my $worksheet = $workbook->add_worksheet(substr($opt{'title'},0,31)); - -$worksheet->protect(); - -my($r,$c) = (0,0); - -my $header_format = $workbook->add_format( - bold => 1, - locked => 1, - bg_color => 55, #22, - bottom => 3, -); - -$worksheet->write($r, $c++, $_, $header_format ) foreach @$header; - -foreach my $row ( @$rows ) { - $r++; - $c = 0; - - if ( $opt{'fields'} ) { - - #my $links = $opt{'links'} ? [ @{$opt{'links'}} ] : ''; - #my $aligns = $opt{'align'} ? [ @{$opt{'align'}} ] : ''; - #could also translate color, size, style into xls equivalents? - my $formats = $opt{'xls_format'} ? [ @{$opt{'xls_format'}} ] : []; - - foreach my $field ( @{$opt{'fields'}} ) { - - my $format = shift @$formats; - $format = &{$format}($row) if ref($format) eq 'CODE'; - $format ||= {}; - my $xls_format = $workbook->add_format(locked=>0, %$format); - - if ( ref($field) eq 'CODE' ) { - foreach my $value ( &{$field}($row) ) { - if ( ref($value) eq 'ARRAY' ) { - $worksheet->write($r, $c++, '(N/A)' ); #unimplemented - } else { - $worksheet->write($r, $c++, $value, $xls_format ); - } - } - } else { - $worksheet->write($r, $c++, $row->$field(), $xls_format ); - } - } - - } else { - my $xls_format = $workbook->add_format(locked=>0); - $worksheet->write($r, $c++, $_, $xls_format ) foreach @$row; - } - -} - -$workbook->close();# or die "Error creating .xls file: $!"; - -http_header('Content-Length' => length($data) ); - -</%init> |