web-dev-qa-db-fra.com

PHPExcel modifie le fichier .xlsx existant avec plusieurs feuilles de calcul


require_once '../Classes/PHPExcel/IOFactory.php';


/** PHPExcel */require_once '../Classes/PHPExcel.php';

$Excel2 = PHPExcel_IOFactory::createReader('Excel2007');
$Excel2 = $Excel2->load('dentkey.xlsx');
$Excel2->setLoadAllSheets();
$Excel2->setActiveSheetIndex(0);
$Excel2->getActiveSheet()->setCellValue('C6', '4')           

->setCellValue('C7', '5')         

  ->setCellValue('C8', '6')       

    ->setCellValue('C9', '7');
$Excel2->setActiveSheetIndex(1);
$Excel2->getActiveSheet()->setCellValue('A7', '4')

->setCellValue('C7', '5');


$objWriter = PHPExcel_IOFactory::createWriter($Excel2, 'Excel2007');
$objWriter->save('dentkey1.xlsx');


ici, je peux charger le fichier (.xlsx) et je peux aussi modifier (dentkey.xlsx). Mais après avoir généré un nouveau fichier .xlsx (dentkey1.xlsx) .. toutes les données des feuilles de calcul qui se trouvaient dans (dentkey.xlsx) ne se chargent pas et je ne peux pas non plus définir de valeur pour la deuxième feuille de calcul.

tu peux bien

$Excel2->setActiveSheetIndex(1);
$Excel2->getActiveSheet()->setCellValue('A7', '4')

->setCellValue('C7', '5');

ne définit pas la valeur 5 sur la colonne 'C7' du fichier généré (dentkey.xlsx)

aidez-moi, s'il vous plaît...

merci beaucoup d'avance

26
Denish

Ce code semble fonctionner, testé dans un environnement local WampServer Version 2.1

Téléchargez la dernière version de PHPExcel d'ici PHPExcel 1.7.6

Code de travail.

<?php
error_reporting(E_ALL);
date_default_timezone_set('Europe/London');
require_once '../Classes/PHPExcel/IOFactory.php';
require_once '../Classes/PHPExcel.php';

$Excel2 = PHPExcel_IOFactory::createReader('Excel2007');
$Excel2 = $Excel2->load('nTest.xlsx'); // Empty Sheet
$Excel2->setActiveSheetIndex(0);
$Excel2->getActiveSheet()->setCellValue('C6', '4')
    ->setCellValue('C7', '5')
    ->setCellValue('C8', '6')       
    ->setCellValue('C9', '7');

$Excel2->setActiveSheetIndex(1);
$Excel2->getActiveSheet()->setCellValue('A7', '4')
    ->setCellValue('C7', '5');
$objWriter = PHPExcel_IOFactory::createWriter($Excel2, 'Excel2007');
$objWriter->save('Nimit New.xlsx');
?>

Supprimez cette ligne de votre code: $Excel2->setLoadAllSheets();.

J'espère que cela vous aidera.

52
Nimit Dudani