PHPExcel format de Fichier ou extension n'est pas valide
Je suis en utilisant phpexcel pour l'exportation ma requête dans un fichier excel; cependant, après j'ai créé un fichier(qui est xslx format), je ne peux pas ouvrir mon fichier dans excel. Il donne "le format du fichier ou l'extension n'est pas valide. Vérifiez que le fichier n'a pas été endommagé et que l'extension du fichier correspond au format de fichier du fichier d'erreur". Quand j'ouvre le fichier dans texteditor(le mien est npp) je vois que mon fichier php du code css et une partie de mon code html. Mon code est comme ça;
if( ! empty($_POST['export'])){
$query = "SELECT * FROM asd ORDER BY asdf LIMIT 10";
$headings = array('Timestamp', 'h1','h2');
require 'Classes/PHPExcel.php';
$objPHPExcel = new PHPExcel();
$objPHPExcel->getActiveSheet()->setTitle('List of Users');
$rowNumber = 1;
$col = 'A';
foreach($headings as $heading) {
$objPHPExcel->getActiveSheet()->setCellValue($col.$rowNumber,$heading);
$col++;
}
$rowNumber = 2;
while ($row = mysql_fetch_row($result)) {
$col = 'A';
foreach($row as $cell) {
$objPHPExcel->getActiveSheet()->setCellValue($col.$rowNumber,$cell);
$col++;
}
$rowNumber++;
}
$objPHPExcel->getActiveSheet()->freezePane('A2');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="userList.xlsx"');
header("Content-Transfer-Encoding: binary ");
//ob_end_clean();
//header('Cache-Control: max-age=0');
$objWriter->save('php://output');
exit();
}
Je suis coincé s'il vous plaît aider. Merci.
OriginalL'auteur Orcun | 2013-06-07
Vous devez vous connecter pour publier un commentaire.
Comme décrit dans le manuel.... si rien d'autre sortie vers le navigateur, ce sera endommagé le fichier de sortie.
Ouvrir le fichier dans un éditeur de texte, et de regarder pour les espaces avant ni après les caractères (espaces, tabulations, retours à la ligne) ou une NOMENCLATURE repère au début de la sortie, ou pour tout évident PHP en clair des messages d'erreur dans le contenu. Ce sont les la plupart des causes évidentes de ce problème. Une fois que vous avez identifié les caractères falsifiés, vérifier votre script pour voir où cette sortie est généré, et le retirer.
Dans votre cas, cela signifie que ne pas à la sortie de votre css et html.
MODIFIER
xlsx est l'extension d'un OfficeOpenXML Excel2007 fichier, pas pour un BIFF 8 fichier xls.... soyez cohérent dans vos en-têtes (de type mime et de l'extension de fichier) et l'Écrivain
Soit:
ou
a fonctionné pour moi, merci Marc!
cochez la case 'encodage' vous avez utilisé dans votre éditeur de texte. Il pourrait faire écho à certains caractères.
Merci j'ai eu des erreurs dans le php côté et je ne savais pas
L'ajout de
ob_clean();
dans une ligne avant les en-têtes de a sauvé ma journée. J'ai eu un \n dans le fichier produit, mais je n'ai aucune idée de pourquoi il était là.OriginalL'auteur Mark Baker