2017-08-05 2 views
0

Actuellement en utilisant la feuille modèle excel pour ajouter des données, l'exigence est ajouter une nouvelle feuille aussi, donc besoin d'ajouter une nouvelle feuille avec le même modèle.PHPExcel: Comment créer une nouvelle feuille de calcul avec un modèle?

Mon nouveau commence par tamplate:

$filePath = public_path('Template.xls'); 
$objPHPExcel = PHPExcel_IOFactory::load($filePath); 

Maintenant, je dois créer de nouvelles feuilles en même fichier avec la même tamplate sans première feuille clone, parce que le besoin de charger le modèle sans frais données.

Répondre

2

Vous ne voulez pas simplement créer une nouvelle feuille, que vous souhaitez copier une feuille avec toutes ses styleing existantes

donc créer un clone de la feuille existante, lui donner un nouveau titre (parce que les titres de feuille de calcul doit être unique) et attacher ce clone au classeur.

$newSheet = clone $objPHPExcel->getActiveSheet(); 
$newSheet->setTitle('Worksheet 2'); 
$objPHPExcel->addSheet($newSheet); 
+0

Je ne devrais pas cloner de la feuille active, car il copie de toutes les données saisies. J'ai besoin d'un nouveau template chargé. mais la condition est après remplir la première feuille. – 151291

+0

Yup, a obtenu réponse et a édité votre réponse. – 151291

0

Vous avez modifié la question depuis que j'ai posté la réponse à votre question initiale.

Si vous avez besoin de créer une nouvelle feuille de calcul à partir du modèle après que vous avez déjà chargé le modèle original et peuplé avec des données, alors vous aurez besoin de recharger le modèle en tant que nouvel objet PHPExcel et injecter la feuille de calcul que dans votre classeur d'origine:

$filePath = public_path('Template.xls'); 
$objPHPExcel = PHPExcel_IOFactory::load($filePath); 
// fill with data 
$template = PHPExcel_IOFactory::load($filePath); 
$newSheet = clone $template->getActiveSheet(); 
$objPHPExcel->addExternalSheet($newSheet); 

la méthode addExternalSheet() garantit que tous les styles et de structure (cellules fusionnées) sont copiées proprement avec la feuille de calcul lorsqu'elle est ajoutée. Simplement en utilisant la méthode addSheet() n'est pas garanti pour copier cette information correctement

+0

Hope, mon titre montre clairement que j'ai besoin d'un nouveau modèle pas un clone de données remplies. Je viens d'ajouter pour l'explication au fond. Je n'ai rien ajouté de nouveau à ma question. – 151291

+0

Eh bien, un modèle est généralement sans données; une fois que vous avez ajouté des données à un modèle, il cesse d'être un modèle –