View | Details | Raw Unified | Return to bug 21560
Collapse All | Expand All

(-)a/misc/cronjobs/gather_print_notices.pl (-12 / +13 lines)
Lines 254-271 sub generate_ods { Link Here
254
    my $messages = $params->{messages};
254
    my $messages = $params->{messages};
255
    my $filepath = $params->{filepath};
255
    my $filepath = $params->{filepath};
256
256
257
    # Create document
257
    use OpenOffice::OODoc;
258
    use OpenOffice::OODoc;
258
    my $tmpdir = dirname $filepath;
259
    my $tmpdir = dirname $filepath;
259
    odfWorkingDirectory( $tmpdir );
260
    odfWorkingDirectory( $tmpdir );
260
    my $container = odfContainer( $filepath, create => 'spreadsheet' );
261
    my $doc = odfDocument( file => $filepath, create => 'spreadsheet' );
261
    my $doc = odfDocument (
262
        container => $container,
263
        part      => 'content'
264
    );
265
    my $table = $doc->getTable(0);
266
262
263
    # Prepare sheet
267
    my @headers;
264
    my @headers;
268
    my ( $nb_rows, $nb_cols, $i ) = ( scalar(@$messages), 0, 0 );
265
    my @rows;
266
    my $i = 0;
269
    foreach my $message ( @$messages ) {
267
    foreach my $message ( @$messages ) {
270
        my @lines = split /\n/, $message->{content};
268
        my @lines = split /\n/, $message->{content};
271
        chomp for @lines;
269
        chomp for @lines;
Lines 273-282 sub generate_ods { Link Here
273
        # We don't have headers, get them
271
        # We don't have headers, get them
274
        unless ( @headers ) {
272
        unless ( @headers ) {
275
            @headers = split $delimiter, $lines[0];
273
            @headers = split $delimiter, $lines[0];
274
            my $nb_cols = scalar @headers;
275
            my $nb_rows = scalar @$messages;
276
            my $sheet = $doc->expandTable( 0, $nb_rows + 1, $nb_cols );
277
            @rows = $doc->getTableRows($sheet);
276
278
277
            $nb_cols = @headers;
279
            # Write headers row
278
            $doc->expandTable( $table, $nb_rows + 1, $nb_cols );
280
            my $row = $rows[0];
279
            my $row = $doc->getRow( $table, 0 );
280
            my $j = 0;
281
            my $j = 0;
281
            for my $header ( @headers ) {
282
            for my $header ( @headers ) {
282
                $doc->cellValue( $row, $j, Encode::encode( 'UTF8', $header ) );
283
                $doc->cellValue( $row, $j, Encode::encode( 'UTF8', $header ) );
Lines 285-294 sub generate_ods { Link Here
285
            $i = 1;
286
            $i = 1;
286
        }
287
        }
287
288
289
        # Write all rows
288
        shift @lines; # remove headers
290
        shift @lines; # remove headers
289
        for my $line ( @lines ) {
291
        for my $line ( @lines ) {
290
            my @row_data = split $delimiter, $line;
292
            my @row_data = split $delimiter, $line;
291
            my $row = $doc->getRow( $table, $i );
293
            my $row = $rows[$i];
292
            # Note scalar(@$row_data) should be equal to $nb_cols
294
            # Note scalar(@$row_data) should be equal to $nb_cols
293
            for ( my $j = 0 ; $j < scalar(@row_data) ; $j++ ) {
295
            for ( my $j = 0 ; $j < scalar(@row_data) ; $j++ ) {
294
                my $value = Encode::encode( 'UTF8', $row_data[$j] );
296
                my $value = Encode::encode( 'UTF8', $row_data[$j] );
295
- 

Return to bug 21560