PHPExcel fichier ne peut pas ouvrir un fichier parce que le format du fichier ou l'extension de fichier n'est pas valide
Je suis bloqué avec ce problème, il n'est pas afficher le fichier excel existant. Veuillez vérifier mon code ci-dessous:
/** Error reporting */
error_reporting(E_ALL);
/** PHPExcel */
require_once 'PHPExcel.php';
include 'PHPExcel/Writer/Excel2007.php';
//Create new PHPExcel object
#echo date('H:i:s') . " Create new PHPExcel object\n";
$objPHPExcel = new PHPExcel();
$excel = new PHPExcel();
$objPHPExcel->getProperties()->setTitle("Payroll");
if(!$result){
die("Error");
}
$col = 0;
$row = 2;
while($mrow = mysql_fetch_assoc($result)) {
$col = 0;
foreach($mrow as $key=>$value) {
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col, $row, $value);
$col++;
}
$row++;
}
//Set active sheet index to the first sheet, so Excel opens this as the first sheet
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A1', 'Scholar Id')
->setCellValue('B1', 'Lastname')
->setCellValue('C1', 'Middlename')
->setCellValue('D1', 'Firstname')
->setCellValue('E1', 'Barangay')
->setCellValue('F1', 'Level')
->setCellValue('G1', 'Allowance')
->setCellValue('H1', 'Has claimed?');
$objPHPExcel->getActiveSheet()->getStyle('A1:H1')->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(12);
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(18);
$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(18);
$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(18);
$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(18);
$objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(12);
$objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(12);
$objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(14);
$objPHPExcel->getActiveSheet()->getStyle('A1:H1')->getAlignment()- >setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objPHPExcel->getActiveSheet()->setShowGridlines(true);
$objPHPExcel->getActiveSheet()->getStyle('A1:H1')->applyFromArray(
array(
'fill' => array(
'type' => PHPExcel_Style_Fill::FILL_SOLID,
'color' => array('rgb' => 'FFFF00')
)
)
);
//Save Excel 2007 file
echo date('H:i:s') . " Write to Excel2007 format\n";
#$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="payroll.xlsx"');
header('Cache-Control: max-age=0');
$writer->save('php://output');
Chaque fois que vous voyez cette erreur, la première chose que vous devez faire est d'ouvrir le fichier dans un éditeur de texte et vérifiez les espaces (espaces, tabulations, retours à la ligne, etc) au début ou à la fin du fichier, ou une NOMENCLATURE repère, ou de toute évidence une PHP lisible par l'homme, les messages d'erreur dans le contenu du fichier
quand j'ai ouvert le fichier, il ne contient pas de codes ou quoi que ce soit
quand j'ai ouvert le fichier, il ne contient pas de codes ou quoi que ce soit
OriginalL'auteur | 2013-01-10
Vous devez vous connecter pour publier un commentaire.
Je l'ai eu à travailler maintenant! Grâce à cette phpexcel pour le télécharger
J'ai changé le code de cette:
Je pense que cette ligne:
résolu mon problème.
oui, c'était la génération de produits, la excel.php fichier,
Oui. Certes, il (ob_end_clean) n'a résolu mon problème. Merci!!!!
Cela a fonctionné pour moi aussi, j'ai eu une erreur de format non valide message d'erreur et quand je mets ce code, il a travaillé pour moi. Merci!!!!
OriginalL'auteur
Je ne sais pas si je peux aider, j'ai eu le même problème et je l'ai résolu avec
je l'ai mis juste après
Afin de ne pas modifier l'en-tête et l'enregistrer en tant que xslx de toute façon, le problème est le tampon!
OriginalL'auteur marco burrometo
Assurez-vous que tous les fichiers (par exemple, qui sont inclus) sont en UTF-8 sans BOM encodage.
Vous pouvez identifier ce de différentes façons, par exemple, voir ce lien.
Seulement si vous avez besoin d'UTF-8 avec BOM - s'il vous plaît utiliser
ob_end_clean();
avant que les données outputing pour le navigateur, comme indiqué dans d'autres réponses ici.OriginalL'auteur Andron
La cause la plus probable si c'est un copier-coller de votre script est le
Si vous êtes l'envoi au navigateur pour le téléchargement, puis il doit y avoir pas d'autre sortie (échos, des instructions d'impression, de tomber dans et hors de PHP) que la sortie générée en php://output par PHPExcel lui-même
Le navigateur doit être adressée à offrir le téléchargement du dialogue par les en-têtes que vous envoyez.... mais je ne comprends pas bien votre question et coomments. La question suggéré que vous obtenir le téléchargement de dialogue, mais le fichier a été endommagé. Maintenant, vous dites que vous n'obtenez pas le dialogue de téléchargement
Oui, je suis moi-même confus. Désolé, mais pour l'instant mon problème est le navigateur est de télécharger l'excel.php lui-même, le fichier excel est téléchargé aussi bien dans mon dossier, mais je veux que l'utilisateur de choisir l'endroit où il doit l'enregistrer.
OriginalL'auteur Mark Baker
J'ai le même problème, le problème est simple. Juste mettre le code ci-dessous :
après :
OriginalL'auteur Ahmad Wijaya
je pense que la solution de ce problème est le même qu'ici:
Google Chrome erreurs lors de l'exportation d'un fichier XLS en utilisant PHP
il suffit d'ajouter un espace entre attachement; et nom de fichier, de cette façon :
que je peux le voir dans votre propre réponse c'est ce que vous avez fait, et c'est probablement ce qui a résolu votre problème.
OriginalL'auteur cetipabo
J'ai eu le même problème mais en l'appelant
ob_end_clean()
n'a pas fonctionné. Mon CMS (drupal 7) avait foiré mes en-têtes j'ai donc reçu une nouvelle ligne (hex0A
) au début du contenu, même si j'ai appeléob_end_clean()
avant que le fichier de sortie.Avec le code ci-dessous j'ai enfin débarrassé des leaders de la nouvelle ligne:
OriginalL'auteur ARN
Cette réponse sauver ma vie. Merci @ARN
OriginalL'auteur Python