Page 1 sur 1

Conversion .docx et .xlsx

Posté : 03 avr. 2008, 11:03
par praline
Salut,

Je cherche un outils / script qui serait capable de convertir les fichier .docx et .xlsx vers un fichier texte .txt

L'outil que je cherche doit être utilisable en ligne de commande pour appel via PHP

Pour les .docx, http://blinuxman.net/blinux/docx2txt semble marcher.

Merci, a+

Posté : 28 mai 2008, 12:06
par praline
En réponse à moi même ...

Voici une solution en PERL

le script a besoin des librairires Spreadsheet::XLSX et Text::Iconv
pour cela on utilise l'outil cpan en ligne de commande:

Code : Tout sélectionner

cpan -i Spreadsheet::XLSX cpan -i Text::Iconv
et voici le source pour extraire le texte du document mydoc.xlsx

Code : Tout sélectionner

# !/usr/bin/perl use Text::Iconv; my $converter = Text::Iconv -> new ("utf-8", "windows-1251"); # Text::Iconv is not really required. # This can be any object with the convert method. Or nothing. use Spreadsheet::XLSX; my $excel = Spreadsheet::XLSX -> new ('mydoc.xlsx', $converter); foreach my $sheet (@{$excel -> {Worksheet}}) { printf("Sheet: %s\n", $sheet->{Name}); $sheet -> {MaxRow} ||= $sheet -> {MinRow}; foreach my $row ($sheet -> {MinRow} .. $sheet -> {MaxRow}) { $sheet -> {MaxCol} ||= $sheet -> {MinCol}; foreach my $col ($sheet -> {MinCol} .. $sheet -> {MaxCol}) { my $cell = $sheet -> {Cells} [$row] [$col]; if ($cell) { # printf("( %s , %s ) => %s\n", $row, $col, $cell -> {Val}); printf("%s\n", $cell -> {Val}); } } } }
le script resta à adapter pour les besoins de chacun ...