2017-09-08 1 views
0

J'ai des questions concernant la bibliothèque PhPExcel car je suis bloqué à un point et je ne sais pas comment aller de l'avant. Je serais vraiment reconnaissant si je pouvais obtenir de l'aide sur comment puis-je lire, écrire, & enregistrer un fichier .xlsm (surtout ceci, il n'a pas de macros mais oui beaucoup de calculs) ou .xlsx en passant certaines valeurs d'une page Web, puis récupérer les données hors de celui-ci. Le fichier est un classeur avec comme 3-4 feuilles Excel, tous connectés les uns aux autres, comme la valeur passant de la page Web va à la feuille 1, mais tous les calculs & valeurs pertinentes récupérées pour effectuer ces calculs vient de la feuille 2 et ensuite les modifications respectives sont faites sur la feuille 1 et les cellules à afficher sur la page web sont sur la feuille 1. Pour en dire plus c'est comme si j'entre une valeur sur la page web, ça ouvre le fichier excel désigné, le lit, écrit les modifications spécifiées, puis enregistre ces modifications. Ensuite, il l'ouvre, lit les cellules requises et les affiche sur la page Web. Le problème est qu'il prend beaucoup de temps pour lire le fichier et enregistrer les modifications passe du site Web et n'affiche pas également la sortie attendue et les erreurs de lancer comme indiqué ci-dessous après le code.Utiliser Excel avec la bibliothèque PhPExcel

`if (isset($_POST['submit'])) { 
    if ($_POST['input'] == 0) { 
     echo 'The output equals to 0'; 
    } else { 
     include 'C:\wamp64\www\website\excelvideo\PHPExcel-1.8\Classes\PHPExcel\IOFactory.php'; 

     $objPHPExcel = PHPExcel_IOFactory::load('C:\wamp64\www\website\excelvideo\401k.xlsx'); 

     $objPHPExcel->getActiveSheet()->setCellValue('C2', $_POST['input']); 
     $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, "Excel2007"); 
     echo 'Data Saved'; 
     $objWriter->save('401k.xlsx'); 

     echo '<label for="output">Output is as follows:</label><br/>'; 

     $objPHPExcel = PHPExcel_IOFactory::load('C:\wamp64\www\website\excelvideo\401k.xlsx'); 
     echo $objPHPExcel->getActiveSheet()->getCell('C17')->getCalculatedValue().'<br />';` 

error snippet

+1

S'il vous plaît, ne le faites pas! Ce n'est pas ce que les tableurs sont pour. Utiliser une vraie base de données –

+0

Je sais que je devrais utiliser n'importe quelle base de données, mais cela doit être fait comme une preuve de concept pour une tâche spécifique, alors veuillez me faire savoir s'il y a une possibilité. –

+0

Pour le problème n ° 1 ("il faut beaucoup de temps pour lire le fichier et enregistrer les modifications") ... envisager de charger le fichier avec les données uniquement true, afin que les informations de style soient ignorées, ce qui pourrait accélérer peu .... mais sans connaître les vrais détails, je ne peux pas offrir de vraies solutions à des problèmes vagues où vous parlez d'erreurs sans dire ce que les messages d'erreur disent réellement –

Répondre

0

L'erreur que vous recevez est générée par un paramètre xdebug dans votre php.ini. Comment désactiver ou augmenter la limite est répondu ici: Increasing nesting function calls limit

L'utilisation d'Excel comme solution de base de données est en effet une très mauvaise pratique, car, comme l'erreur que vous avez reçue, vous allez bientôt rencontrer des problèmes comme "limite de mémoire dépassé" ou pire encore, un fichier Excel corrompu lorsque plusieurs processus essaient d'écrire dans le même fichier en même temps. Donc, je voudrais vraiment regarder dans une solution de stockage différente. MySQL vient à l'esprit.

+0

Merci beaucoup pour votre réponse rapide, je suis toujours coincé à mon problème, la solution que vous avez fournie entraîne maintenant une erreur de plus: "Le site ne peut pas être atteint". Si possible, vous pourriez plus élaboré, vous avez suggéré la solution. Le problème avec MySQL est que je ne peux pas transférer directement les données vers une autre base de données car elle contient de nombreux calculs sans formule mathématique disponible, sinon j'aurais préféré JavaScript. De plus, c'est une tâche très spécifique à faire, une sorte de preuve de construction de concept. Mon problème n'est pas résolu. –