Kroc 25/03/2010 : Cette page (basée sur la version anglaise [1]) montre comment sauvegarder un document Microsoft Excel en fichier CSV et en texte tabulé en utilisant l'extension Tcom :
Enregistrement au format CSV :
proc xls2csv {fichier} { # Chargement du paquet : package require tcom # Noms des fichiers source et cible : set fin [file nativename [file normalize $fichier]] set fout [file rootname $fin].csv # Lancement d'Excel : set excel [::tcom::ref createobj Excel.Application] set workbooks [$excel Workbooks] # Ouverture du fichier source : set workbook [$workbooks Open $fin] # Détermination du format souhaité en sortie : set XlFileFormat(xlCSV) [expr 6] # Nécessaire pour bloquer les messages d'alerte : $excel DisplayAlerts False # Sauvegarde : $workbook SaveAs $fout $XlFileFormat(xlCSV) # Fermeture d'Excel : $excel DisplayAlerts False $excel Quit return }
Enregistrement en texte tabulé :
proc xls2txt {fichier} { package require tcom set fin [file nativename [file normalize $fichier]] set fout [file rootname $fin].txt set excel [::tcom::ref createobj Excel.Application] set workbooks [$excel Workbooks] set workbook [$workbooks Open $fin] set XlFileFormat(xlTextWindows) [expr 20] $excel DisplayAlerts False $workbook SaveAs $fout $XlFileFormat(xlTextWindows) $excel DisplayAlerts False $excel Quit return }
Lit un fichier Excel et retourne son contenu en texte brut :
proc loadxls {fichier} { package require tcom set fin [file nativename [file normalize $fichier]] set fout [file join $::env(TEMP) tmp.txt] set excel [::tcom::ref createobj Excel.Application] set workbooks [$excel Workbooks] set workbook [$workbooks Open $fin] set XlFileFormat(xlTextWindows) [expr 20] $excel DisplayAlerts False $workbook SaveAs $fout $XlFileFormat(xlTextWindows) $excel DisplayAlerts False $excel Quit set fin [open $fout r] set data [read $fin] close $fin after idle file delete -force $fout return $data }
Le format de fichier en sortie a été trouvé ici : [2]
Voir également : Word avec Tcom