Page 1 sur 1

Conversion CSV to XLS

Posté : 21 janv. 2015, 01:56
par sirpapy
Bonjour,
Je voudrais savoir comment faire pour convertir un ensemble de fichiers CSV contenu dans un répertoire en xls. Si possible aussi de changer l'encodage.
Merci d'avance

Re: Conversion CSV to XLS

Posté : 21 janv. 2015, 09:47
par @rthur
Bonjour,

Pour changer l'encodage voici les fonctions utiles : utf8_encode(), utf8_decode(), iconv()

Pour transformer un csv en fichier Excel, il existe plusieurs dizaines de librairies.
En voici une : https://github.com/faisalman/simple-excel-php

Un point à avoir en tête, il est beaucoup plus simple de créer des fichiers .xlsx, c'est à dire compatible avec Excel > 2003 car c'est basé sur un format XML ouvert.
Tandis que les fichiers au format .xls sont dans un format propriétaire de Microsoft plus difficile à générer.

Re: Conversion CSV to XLS

Posté : 21 janv. 2015, 22:45
par sirpapy
Bonsoir,
Merci j'ai réussi à le faire avec ce code
foreach ( $files as $file ) {
	$objReader = PHPExcel_IOFactory::createReader ( 'CSV' );
	
	// If the files uses a delimiter other than a comma (e.g. a tab), then tell the reader
	$objReader->setDelimiter ( ";" );
	// If the files uses an encoding other than UTF-8 or ASCII, then tell the reader
	$objReader->setInputEncoding ( 'UTF-8' );
	
	$objPHPExcel = $objReader->load ( $file );
	$objWriter = PHPExcel_IOFactory::createWriter ( $objPHPExcel, 'Excel5' );
	$objWriter->save ( dirname ( __FILE__ ) . '/archive/' . basename ( $file ) . '.ods' );
	echo 'file created';
}

Re: [RESOLU] Conversion CSV to XLS

Posté : 22 janv. 2015, 14:05
par @rthur
Parfait.
Merci pour le partage de la solution :)