Question : Perl - Rangées lues d'Excel dans une rangée

J'avais joué avec le bilan : : Module de BasicRead et quelques autres sans la chance.  Ce que je veux faire est de faire analyser le manuscrit indiquer un dossier d'exceler et chaque rangée dans une rangée.  Est-ce que quelqu'un peut me donner un certain code d'exemple ?

class= de

Réponse : Perl - Rangées lues d'Excel dans une rangée

J'ai pensé que les commentaires dans le code étaient suffisants.  J'essayerai d'expliquer mieux.

Si vous ne comprenez pas les structures de données nichées dans le Perl, je proposerais de regarder un cours d'instruction (je pense qu'on était http://www.perltutorial.org/).

Me faire savoir s'il reste quelque chose que vous ne comprenez pas.
1 :
2 :
3 :
4 :
5 :
6 :
7 :
8 :
9 :
10 :
11 :
12 :
13 :
14 :
15 :
16 :
17 :
18 :
19 :
20 :
21 :
22 :
23 :
24 :
25 :
26 :
27 :
28 :
29 :
30 :
31 :
32 :
33 :
34 :
35 :
36 :
37 :
38 :
39 :
40 :
41 :
42 :
43 :
# vous devriez toujours employer strict et des avertissements pour réduire des erreurs en votre code
employer strict ;
employer les avertissements ;
bilan d'utilisation : : ParseExcel ;
mon %data ;
# créer l'objet d'analyseur
mon $parser = bilan : : ParseExcel->new () ;
# ouvrir le dossier de xls
mon $xls = $parser->parse (« /var/tmp/now.xls ") ou meurent $parser->error () ;
# boucle au-dessus de toutes les feuilles de travail dans le dossier
foreach mon $sheet ($xls->worksheets ()) {
    mon ($rmin, $rmax) = $sheet->row_range () ;
    mon ($cmin, $cmax) = $sheet->col_range () ;
    mon @page ;
    pour mon $row ($rmin. $rmax) {
        mon @line ;
        pour mon $col ($cmin. $cmax) {
            mon $cell = $sheet->get_cell ($row, $col) ;
            pousser le @line, $cell->value () si défini ($cell) ;
        }
        # le @line contient maintenant un choix de la ligne courante
        pousser le @page, [@line] ;
    }
    # le @page contient maintenant un choix de choix de toutes les lignes sur la feuille de travail courante
    # code d'exemple de ce qui à faire avec le @page
    foreach mon $line (@page) {# boucle au-dessus de chaque ligne
       # $line est maintenant un arrayref
       # copie chaque ligne avec les espaces entre les colonnes
       copie « @$line \ n » ;
       # plus généralement, ceci pourrait être (et vous pourriez remplacer l'espace par quoi que) :
       # la copie se joignent ('', @$line), « \ n » ;
    }
    # exemple de fin
    $data {$sheet->get_name ()} = [@page] ;
}
# %data contient maintenant un gâchis des choix de choix de toutes les données dans Excel
# code d'exemple (commenté dehors) de la façon imprimer toutes les données pour toutes les pages
# foreach mon $name (clés de tri %data) {
#     copie « feuille de travail $name \ n » ;
#     foreach mon $line (@ {$data {$name}}) {
#         la copie se joignent ('', @$line), « \ n » ;
#     }
#}
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us