Comment faire pour convertir XLS au format CSV sur Perl

Comment faire pour convertir XLS au format CSV sur Perl


Les entreprises utilisent couramment Excel pour stocker des tableaux de données. Souvent, ces entreprises vont trouver une utilisation pour que les données qui nécessite le convertir en un format différent pour d'autres logiciels à utiliser. Mais les fichiers Excel ne sont pas conçus pour être lus par d'autres programmes. Les données qu'ils contiennent doit être converti en un format commun, tel que Comma Separated Value (CSV). Pour les personnes ayant un grand nombre de fichiers Excel pour convertir, le processus habituel est lourd. Donc, la capacité de Perl pour gérer les tâches de traitement de données rapidement et facilement est très pratique dans ce cas.

Instructions

Créez votre fichier CSV

1 Installez le module Perl "Spreadsheet :: ParseExcel" sur votre système. Ceci est le module standard Perl pour lire des données à partir de fichiers Excel. Le processus d'installation dépend de votre type de système.

Si vous avez ActiveState Perl (ie ,. Perl pour Windows):

Ouvrez une fenêtre d'invite de commandes. Allez à la "bin" sous-dossier du dossier dans lequel votre programme ActiveState Perl est situé. Si vous ne savez pas où il est, utiliser la fonction de recherche de Windows pour trouver "ActiveState" et faire une note du "chemin du répertoire" dans le dossier ActiveState Perl. Ensuite, allez à votre fenêtre Invite de commandes et tapez "DIR" suivi de ce chemin de répertoire, puis appuyez sur Entrée. Ensuite, tapez "bin DIR" et appuyez sur Entrée.

Tapez "ppm", puis appuyez sur Entrée. Une partie du texte apparaît et vous serez capable de taper à nouveau les commandes. Tapez "install Spreadsheet :: ParseExcel" et appuyez sur Entrée. Certains plus de texte apparaîtra et l'installation sera terminée.

Si vous avez Perl standard:

Ouvrez une invite de commande ou fenêtre de terminal. Sous Mac OS X, le programme est appelé Terminal. Tapez le texte suivant:

perl -e -MCPAN installer Spreadsheet :: ParseExcel

Appuyez sur Entrée. Beaucoup de texte apparaît, puis l'installation sera terminée.

2 Faites votre fichier Excel accessible à votre script Perl. Faites une copie du fichier Excel avec le nom "xls_test.xls" pour ce tutoriel et déplacez-le dans le dossier où votre script Perl est situé.

3 Chargez votre fichier Excel dans votre script Perl avec ce code:

utiliser Spreadsheet :: ParseExcel;

my $ xlsparser = Spreadsheet :: ParseExcel-> new ();

my $ xlsbook = $ parser-> parse ( 'xsl_test.xls');

my $ xls = $ xls-> feuille (0);

Maintenant, nous avons un objet ( "$ xls") qui contient les données de la première feuille de calcul de notre fichier Excel. Si vous souhaitez obtenir des données à partir d'une feuille de calcul différente, remplacez le zéro ( "0") dans la quatrième ligne avec le numéro de votre feuille de calcul moins un. Par exemple, le numéro de la première feuille est égale à zéro ( "0"), le numéro de la troisième feuille de calcul est égal à deux ( "2"), et ainsi de suite. Si votre fichier Excel ne dispose que d'une feuille de calcul, utilisez le code tel quel.

4 Découvrez ce que les colonnes et les lignes de votre feuille de calcul a. Utilisez ce code:

my ($ row_first, $ row_last) = $ xls-> row_range ();

my ($ col_first, $ col_last) = $ xls-> col_range ();

5 Créer une variable pour stocker les données CSV. Utilisez ce code:

my $ csv = '';

6 Créer les données CSV. Utilisez ce code pour le faire:

pour ma $ row ($ row_first .. $ row_last) {#Step à travers chaque rangée

pour mon $ col ($ col_first .. $ col_last) {#Step à travers chaque colonne

my $ cell = $ xls-> get_cell ($ row, $ col); #Get La cellule courante

prochaine, à moins $ cellule;

$ Csv = $ Cell-> unformatted (). #GET Données brutes de la cellule - pas de couleurs à la frontière ou quelque chose comme ça

if ($ col == $ col_last) {

$ Csv = "\ n". #make Une nouvelle ligne à la fin de la ligne

} autre {

. $ Csv = ","; "Ajouter une virgule entre chaque élément

}

}

}

7 Sauvegardez les données dans $ csv à un fichier en utilisant les fonctions de fichier d'écriture de Perl. Assurez-vous que votre nom de fichier se termine par ".csv" pour plus de clarté.

Conseils et avertissements

  • fichiers Excel sont beaucoup plus compliquées que les fichiers CSV. Cela fonctionne pour les fichiers Excel avec une rangée d'en-tête ou sans en-tête ligne suivie par des lignes de données. Tout le reste nécessite une programmation plus complexe.