Skip Menu |

This queue is for tickets about the OpenOffice-OODoc CPAN distribution.

Report information
The Basics
Id: 41298
Status: open
Priority: 0/
Queue: OpenOffice-OODoc

People
Owner: Nobody in particular
Requestors: C.Dufeutrelle [...] system-d.fr
Cc:
AdminCc:

Bug Information
Severity: Wishlist
Broken in: (no value)
Fixed in: (no value)



Subject: Bug oodoc
Date: Fri, 28 Nov 2008 19:47:23 +0100
To: bug-OpenOffice-OODoc [...] rt.cpan.org
From: Christophe Dufeutrelle <C.Dufeutrelle [...] system-d.fr>
Bonjour, J'ai détecté un pb sur la liste des cellules d'un calc. La colonne C ou D n'est pas prise en compte ! Le phénomène est récurent, mais ne le fait pas sur toutes les lignes. C'est en fonction de la valeur de la cellule. J'ai essayer de suivre le traitement, mais étant débutant en Perl, je n'ai pas tout compris .... Ci apres le code simplifié d'après un de vos exemples : #################### use OpenOffice::OODoc 2.103; my $doc = odfDocument(file => $ods_fn) or die "$ods_fn is not a regular ODS file\n"; my @lignes = $doc->getTableRows($sheet_name); foreach my $ligne (@lignes) { my @cellules = $doc->getRowCells($ligne); my $n_cell = @cellules; my $i_cell = 0; foreach my $cellule (@cellules) { my $cellval = $doc->getCellValue($cellule); print "$i_cell:$cellval|"; $i_cell++; } print "\n"; } #################### Perl : ActivePerl 5.8.8 OODoc : 2.103 OO : 3.0 Cordialement. Christophe DUFEUTRELLE.
Download BP_a.ods
application/vnd.oasis.opendocument.spreadsheet 9.6k

Message body not shown because it is not plain text.

Je vous propose de remplacer la ligne I suggest you to replace the line my @lignes = $doc->getTableRows($sheet_name); par les deux lignes suivantes: by the two lines below: my $t = $doc->getTable($sheet_name, 'normalize'); my @lignes = $doc->getTableRows($t); essayez, puis (pour une explication) allez voir l'option 'normalize' de getTable() et la méthode normalizeSheet() dans try that, then (for explanation) have a look at the 'normalize' option with getTable() and the normalizeSheet() method in http://search.cpan.org/dist/OpenOffice-OODoc/OODoc/Text.pod Dites-moi si c'est bon et si je peux fermer le ticket Tell me if it works so I can close the ticket Si l'un des exemples de la distribution contient un bug, je le corrigerai dans la prochaine édition If a particular example in the distribution is buggy, I'll fix it in the next release Le Ven. Nov. 28 13:48:09 2008, C.Dufeutrelle@system-d.fr a écrit : Show quoted text
> Bonjour, > > J'ai détecté un pb sur la liste des cellules d'un calc. La colonne C ou > D n'est pas prise en compte ! Le phénomène est récurent, mais ne le fait > pas sur toutes les lignes. C'est en fonction de la valeur de la cellule. > J'ai essayer de suivre le traitement, mais étant débutant en Perl, je > n'ai pas tout compris .... > > Ci apres le code simplifié d'après un de vos exemples : > > #################### > use OpenOffice::OODoc 2.103; > > my $doc = odfDocument(file => $ods_fn) > or die "$ods_fn is not a regular ODS file\n"; > > my @lignes = $doc->getTableRows($sheet_name); > foreach my $ligne (@lignes) > { > my @cellules = $doc->getRowCells($ligne); > my $n_cell = @cellules; > my $i_cell = 0; > > foreach my $cellule (@cellules) > { > my $cellval = $doc->getCellValue($cellule); > > print "$i_cell:$cellval|"; > $i_cell++; > } > print "\n"; > } > #################### > > Perl : ActivePerl 5.8.8 > OODoc : 2.103 > OO : 3.0
Subject: Re: [rt.cpan.org #41298] Bug oodoc
Date: Mon, 01 Dec 2008 09:23:29 +0100
To: bug-OpenOffice-OODoc [...] rt.cpan.org
From: Christophe Dufeutrelle <C.Dufeutrelle [...] system-d.fr>
Bonjour, après modification, la ligne "my $t = $doc->getTable($sheet_name, 'normalize'); " plante perl.exe sur une trop importante consommation mémoire. J'ai fait le test sur le fichier BP_aa.ods que j'avais mis en pièce jointe. Le test à été effectué sous Vista 32, je vais le faire sous XP pour voir. Mais, encore merci pour la réactivité. Cordialement. Christophe DUFEUTRELLE. Jean-Marie Gouarne via RT a écrit : Show quoted text
> <URL: http://rt.cpan.org/Ticket/Display.html?id=41298 > > > Je vous propose de remplacer la ligne > I suggest you to replace the line > > my @lignes = $doc->getTableRows($sheet_name); > > par les deux lignes suivantes: > by the two lines below: > > my $t = $doc->getTable($sheet_name, 'normalize'); > my @lignes = $doc->getTableRows($t); > > essayez, puis (pour une explication) allez voir l'option 'normalize' de > getTable() et la méthode normalizeSheet() dans > try that, then (for explanation) have a look at the 'normalize' option > with getTable() and the normalizeSheet() method in > http://search.cpan.org/dist/OpenOffice-OODoc/OODoc/Text.pod > > Dites-moi si c'est bon et si je peux fermer le ticket > Tell me if it works so I can close the ticket > > Si l'un des exemples de la distribution contient un bug, je le > corrigerai dans la prochaine édition > If a particular example in the distribution is buggy, I'll fix it in the > next release > > Le Ven. Nov. 28 13:48:09 2008, C.Dufeutrelle@system-d.fr a écrit : >
>> Bonjour, >> >> J'ai détecté un pb sur la liste des cellules d'un calc. La colonne C ou >> D n'est pas prise en compte ! Le phénomène est récurent, mais ne le fait >> pas sur toutes les lignes. C'est en fonction de la valeur de la cellule. >> J'ai essayer de suivre le traitement, mais étant débutant en Perl, je >> n'ai pas tout compris .... >> >> Ci apres le code simplifié d'après un de vos exemples : >> >> #################### >> use OpenOffice::OODoc 2.103; >> >> my $doc = odfDocument(file => $ods_fn) >> or die "$ods_fn is not a regular ODS file\n"; >> >> my @lignes = $doc->getTableRows($sheet_name); >> foreach my $ligne (@lignes) >> { >> my @cellules = $doc->getRowCells($ligne); >> my $n_cell = @cellules; >> my $i_cell = 0; >> >> foreach my $cellule (@cellules) >> { >> my $cellval = $doc->getCellValue($cellule); >> >> print "$i_cell:$cellval|"; >> $i_cell++; >> } >> print "\n"; >> } >> #################### >> >> Perl : ActivePerl 5.8.8 >> OODoc : 2.103 >> OO : 3.0 >>
> > >
Vu ! C'est un problème déjà identifié, qui vient d'un comportement bizarre du tableur OpenOffice.org (toutes versions), affectant aléatoirement à certaines feuilles de calcul des dimensions aberrantes et sans rapport avec la zone réellement utilisée. Voir à ce sujet toute la file des messages intitulés "infinite loop in normalizeSheet" dans le forum (http://www.cpanforum.com/dist/OpenOffice-OODoc). On y indique des contournements possibles, à défaut de solution définitive. Le Lun. Déc. 01 03:23:41 2008, C.Dufeutrelle@system-d.fr a écrit : Show quoted text
> Bonjour, après modification, la ligne "my $t = > $doc->getTable($sheet_name, 'normalize'); " plante perl.exe sur une trop > importante consommation mémoire. J'ai fait le test sur le fichier > BP_aa.ods que j'avais mis en pièce jointe. Le test à été effectué sous > Vista 32, je vais le faire sous XP pour voir. > > Mais, encore merci pour la réactivité. > > Cordialement. > > Christophe DUFEUTRELLE. > > Jean-Marie Gouarne via RT a écrit :
> > <URL: http://rt.cpan.org/Ticket/Display.html?id=41298 > > > > > Je vous propose de remplacer la ligne > > I suggest you to replace the line > > > > my @lignes = $doc->getTableRows($sheet_name); > > > > par les deux lignes suivantes: > > by the two lines below: > > > > my $t = $doc->getTable($sheet_name, 'normalize'); > > my @lignes = $doc->getTableRows($t); > > > > essayez, puis (pour une explication) allez voir l'option 'normalize' de > > getTable() et la méthode normalizeSheet() dans > > try that, then (for explanation) have a look at the 'normalize' option > > with getTable() and the normalizeSheet() method in > > http://search.cpan.org/dist/OpenOffice-OODoc/OODoc/Text.pod > > > > Dites-moi si c'est bon et si je peux fermer le ticket > > Tell me if it works so I can close the ticket > > > > Si l'un des exemples de la distribution contient un bug, je le > > corrigerai dans la prochaine édition > > If a particular example in the distribution is buggy, I'll fix it in the > > next release > > > > Le Ven. Nov. 28 13:48:09 2008, C.Dufeutrelle@system-d.fr a écrit : > >
> >> Bonjour, > >> > >> J'ai détecté un pb sur la liste des cellules d'un calc. La colonne
C ou Show quoted text
> >> D n'est pas prise en compte ! Le phénomène est récurent, mais ne le
fait Show quoted text
> >> pas sur toutes les lignes. C'est en fonction de la valeur de la
cellule. Show quoted text
> >> J'ai essayer de suivre le traitement, mais étant débutant en Perl, je > >> n'ai pas tout compris .... > >> > >> Ci apres le code simplifié d'après un de vos exemples : > >> > >> #################### > >> use OpenOffice::OODoc 2.103; > >> > >> my $doc = odfDocument(file => $ods_fn) > >> or die "$ods_fn is not a regular ODS file\n"; > >> > >> my @lignes = $doc->getTableRows($sheet_name); > >> foreach my $ligne (@lignes) > >> { > >> my @cellules = $doc->getRowCells($ligne); > >> my $n_cell = @cellules; > >> my $i_cell = 0; > >> > >> foreach my $cellule (@cellules) > >> { > >> my $cellval = $doc->getCellValue($cellule); > >> > >> print "$i_cell:$cellval|"; > >> $i_cell++; > >> } > >> print "\n"; > >> } > >> #################### > >> > >> Perl : ActivePerl 5.8.8 > >> OODoc : 2.103 > >> OO : 3.0 > >>
> > > > > >
>