2010-06-29 4 views
4

Je sais que ce n'est pas le bon endroit pour poser cette question vague spécifique, mais peut-être quelqu'un connaît assez bien cette bibliothèque pour m'éclairer. Voici la chose:Les lignes écrites par PHPExcel ne peuvent pas être lues à partir d'autres bibliothèques

J'écris un Excel5 sur un fichier Excel existant avec PHPExcel. J'ai besoin de télécharger cet Excel sur le site Web de Zoom, afin qu'il puisse me fournir une liste de numéros de suivi. Cependant, pour une raison quelconque, la bibliothèque qu'ils utilisent pour lire les fichiers Excel téléchargés ne peut pas lire les lignes écrites par PHPExcel et la seule solution que j'ai trouvée jusqu'à présent est de copier manuellement le contenu de mon Excel généré dynamiquement dans un autre document. 2007

En d'autres termes, le site Web Zoom peut lire les lignes écrites en mode natif par Excel mais pas les lignes écrites par PHPExcel. Mon fichier n'a qu'une seule feuille, et je peux l'ouvrir sans problème avec Excel 2007.

Même si j'ajoute manuellement des lignes au modèle et que j'ajoute plus de lignes avec PHPExcel, Zoom lit les lignes écrites manuellement par moi , mais pas les lignes écrites par PHPExcel.

Voilà comment je fais:

// Starting with the PHPExcel library 
$this->load->library('PHPExcel'); 
$this->load->library('PHPExcel/IOFactory'); 
$template_file = 'zoom_tracking_template.xls'; 
$i = 3; 

$objReader = IOFactory::createReader('Excel5'); 
$objPHPExcel = $objReader->load($template_file); 
$objPHPExcel->setActiveSheetIndex(0); 

// Fetching ML payments 
foreach($payments as $row) 
{ 
$objPHPExcel->getActiveSheet()->setCellValue('A'.$i, 'VANESSA NEISZER'); 
$objPHPExcel->getActiveSheet()->setCellValue('B'.$i, '02127616116'); 
$objPHPExcel->getActiveSheet()->setCellValue('C'.$i, '1ER PISO MINITIENDAS 199 BLVD SABANA GRANDE, CRUCE C/CALLE NEGRIN'); 
$objPHPExcel->getActiveSheet()->setCellValue('D'.$i, $row->mailing_city); 
$objPHPExcel->getActiveSheet()->setCellValue('E'.$i, $row->mailing_name); 
$objPHPExcel->getActiveSheet()->setCellValue('F'.$i, $row->mailing_name); 
$objPHPExcel->getActiveSheet()->setCellValue('G'.$i, $row->mailing_personal_id); 
$objPHPExcel->getActiveSheet()->setCellValue('H'.$i, $row->mailing_phone); 
$objPHPExcel->getActiveSheet()->setCellValue('I'.$i, $row->mailing_address1.' '.$row->mailing_address2); 
$objPHPExcel->getActiveSheet()->setCellValue('J'.$i, $row->nickname); 
$objPHPExcel->getActiveSheet()->setCellValue('K'.$i, '1'); 
$objPHPExcel->getActiveSheet()->setCellValue('L'.$i, '0.3'); 
$objPHPExcel->getActiveSheet()->setCellValue('M'.$i, 'M'); 
$objPHPExcel->getActiveSheet()->setCellValue('N'.$i, 'PRODUCTO'); 
$objPHPExcel->getActiveSheet()->setCellValue('O'.$i, '0'); 

$i++; 
} 


$objPHPExcel->setActiveSheetIndex(0); 

$objWriter = IOFactory::createWriter($objPHPExcel, 'Excel5'); 

// Sending headers to force the user to download the file 
header('Content-Type: application/vnd.ms-excel'); 
header('Content-Disposition: attachment;filename="Envios'.date('dMy').'.xls"'); 
header('Cache-Control: max-age=0'); 

$objWriter->save('php://output'); 

Je n'ai pas la moindre idée de ce que la bibliothèque PHP qu'ils utilisent pour lire les fichiers Excel et je suis certain qu'ils me disent si je coutume leur demande. Je sais qu'ils utilisent PHP, et leur bibliothèque ne lit que les fichiers Excel 2003, cependant, je ne sais pas pourquoi ils ne peuvent pas lire mes fichiers mais ils peuvent lire d'autres fichiers écrits manuellement sur MS Excel.

Tous les indices, idées ou suggestions que je pourrais essayer seraient grandement appréciés.

Répondre

2

Et le développeur principal de PHPExcel se penche sur ce problème (entre autres), quelque part entre essayer de trouver un nouvel emploi de jour et avoir une vie. Je ne connais pas le site Web de zoom ou le logiciel qu'ils utilisent. Les fichiers PHPExcel BIFF8 peuvent être lus par Excel, OOCalc et Gnumeric sans erreur ... mais quelques questions me viennent à l'esprit.

  • Quelle version de PHPExcel?
  • L'une des données contient-elle des caractères UTF-8?
  • Y a-t-il des formules dans la feuille de travail modèle?
  • Si oui, quels sont-ils?
+0

Quelle version de PHPExcel ?: PHPExcel 1.7.3c Production - Est-ce que l'une des données contiennent des caractères UTF-8 ?: Oui, ils viennent UTF-8 codé de la base de données et ils sont insérés dans les zones intactes Excel . - Y a-t-il des formules dans la feuille de travail de modèle?: Pas du tout, c'est un en-tête de base avec quelques couleurs, c'est tout. Juste un texte clair. –

Questions connexes