Excel avec Tcom

 

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