2013-06-10 6 views
7

Salut tout j'ai un site et je veux créer un fichier Excel et enregistrer dans mon dossier sur mon serveur. J'ai essayé dans ce mode mais à chaque fois, demandez-moi de le télécharger. Je ne veux pas demander à télécharger car après avoir créé beaucoup de xls est un rapport et n'est pas nécessaire de télécharger, mais seulement pour enregistrer dans un dossier. Voici mon code:PHPExcel enregistrer le fichier

require_once 'inc/PHPExcel.php'; 

// Create new PHPExcel object 
$objPHPExcel = new PHPExcel(); 

// Set document properties 
$objPHPExcel->getProperties()->setCreator("Alessandro Minoccheri") 
          ->setLastModifiedBy("Alessandro Minoccheri") 
          ->setTitle("Office 2007 XLSX Test Document") 
          ->setSubject("Office 2007 XLSX Test Document") 
          ->setDescription("Generazione report inverter") 
          ->setKeywords("office 2007 openxml php") 
          ->setCategory(""); 


// Add some data 
$objPHPExcel->setActiveSheetIndex(0) 
      ->setCellValue('A1', 'Hello') 
      ->setCellValue('B2', 'world!') 
      ->setCellValue('C1', 'Hello') 
      ->setCellValue('D2', 'world!'); 

// Miscellaneous glyphs, UTF-8 
$objPHPExcel->setActiveSheetIndex(0) 
      ->setCellValue('A4', 'Miscellaneous glyphs') 
      ->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç'); 

// Rename worksheet 
$objPHPExcel->getActiveSheet()->setTitle('Simple'); 


// Set active sheet index to the first sheet, so Excel opens this as the first sheet 
$objPHPExcel->setActiveSheetIndex(0); 


// Redirect output to a client’s web browser (Excel5) 
header('Content-Type: application/vnd.ms-excel'); 
header('Content-Disposition: attachment;filename="01simple.xls"'); 
header('Cache-Control: max-age=0'); 

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); 
$objWriter->save('php://output'); 
exit; 

J'ai aussi essayé:

$objWriter->save('namee.xls'); 

Mais encore une fois me demander de télécharger.

Comment puis-je résoudre ce problème?

+3

supprimer les 3 lignes d'en-tête –

Répondre

10

C'est parce que les en-têtes suivants:

// Redirect output to a client’s web browser (Excel5) 
header('Content-Type: application/vnd.ms-excel'); 
header('Content-Disposition: attachment;filename="01simple.xls"'); 
header('Cache-Control: max-age=0'); 

C'est parce que les navigateurs ouvriront Enregistrer sous ... case s'ils voient l'en-tête Content-Disposition. Supprimez ces lignes. Cependant, l'Excel devrait être sauvegardé sur le disque de toute façon. Tu ne le vois pas? sinon, assurez-vous que PHP a les autorisations appropriées pour écrire dans ce dossier

+0

gosh, j'aurais aimé avoir pensé à cela d'abord;) –

+0

@Dagon Ups, je vois votre commentaire :) – hek2mgl

+0

Merci pour ce travail ! +1 pour la réponse rapide .. dès que possible j'accepte la réponse –