Conversion .docx et .xlsx

Eléphanteau du PHP | 13 Messages

03 avr. 2008, 11:03

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+

Eléphanteau du PHP | 13 Messages

28 mai 2008, 12:06

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 ...