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