web-dev-qa-db-fra.com

Comment ouvrir un fichier Excel avec PHPExcel pour la lecture et l'écriture?

J'utilise la bibliothèque PHPExcel et je crée des objets xls soit pour l'écriture soit pour la lecture:

PHPExcel_IOFactory::createReaderForFile('file.xlsx')
PHPExcel_IOFactory::createWriter('Excel2007')

Comment puis-je ouvrir un fichier XLSX pour lire et écrire?

31
Petruza

Vous chargez un fichier dans PHPExcel à l'aide d'un lecteur et de la méthode load (), puis enregistrez ce fichier à l'aide d'un écrivain et de la méthode save () ... mais PHPExcel lui-même ignore la source de l'objet PHPExcel ... il ne le fait pas '' t se soucie si vous l'avez chargé à partir d'un fichier (ou quel type de fichier) ou si vous l'avez créé à la main.

En tant que tel, il n'y a pas de concept "d'ouverture en lecture/écriture". Il vous suffit de lire le fichier par son nom et de l'enregistrer sous le même nom de fichier. Cela écrasera le fichier d'origine avec toutes les modifications que vous avez apportées à votre script.

MODIFIER

Exemple

error_reporting(E_ALL);
set_time_limit(0);

date_default_timezone_set('Europe/London');
set_include_path(get_include_path() . PATH_SEPARATOR . './Classes/');

include 'PHPExcel/IOFactory.php';

$fileType = 'Excel5';
$fileName = 'testFile.xls';

// Read the file
$objReader = PHPExcel_IOFactory::createReader($fileType);
$objPHPExcel = $objReader->load($fileName);

// Change the file
$objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A1', 'Hello')
            ->setCellValue('B1', 'World!');

// Write the file
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, $fileType);
$objWriter->save($fileName);

Et puis-je vous suggérer de lire la documentation et de regarder l'exemple de code dans/Tests

54
Mark Baker