C’est une bête question qui se pose de temps à autre…
Après avoir inséré de nouvelles lignes et de nouvelles colonnes sur un tableau Excel, les formules et fonctions de calculs automatiques (totaux, pourcentages, calculs de TVA, etc.), voire les menus déroulants, donnent parfois le sentiment de se figer : ils semblent ne plus se mettre à jour lors de l’insertion de nouvelles valeurs.
La solution est si courte qu’il s’agit sans doute du billet le plus bref de ce blog !

Que les pros d’Excel cessent de ricaner (« fastoche » !) : non, ce n’est pas évident pour les béotiens que nous sommes…
En fait , ce n’est pas très compliqué.
Mais encore faut-il le savoir !
Pour générer en PHP un fichier au format Excel (.xls ou .csv), la solution traditionnelle était de créer un tableau HTML, dont chaque ligne (<TD></TD>) correspondait à un tuple de la table MySQL exportée en boucle.
Oui, mais… si Excel sait lire le format HTML, les versions récentes affichent un désagréable message à l’ouverture du fichier pour signifier que le langage qu’on lui impose n’est pas le sien :
« Le format et l’extension du fichier « xxx.csv » ne correspondent pas. Le fichier peut présenter un risque ou avoir été endommagé. Ne l’ouvrez pas, à moins que la source soit fiable. Voulez-vous quand même l’ouvrir ? »
Comme quoi, le multiculturalisme ça ne marche pas pour les fichiers non plus…
PHP est un langage d’extraction et d’affichage, mais sa puissance de calcul est limitée. Qui n’a pas été confronté un jour ou l’autre à ses erreurs ses memory_limit, upload_max_filesize ou autres blocage du temps de connexion d’un script ?
Il est possible de « bidouiller » le serveur pour tenter de rallonger tout cela, mais c’est tout de même limité et handicapant lorsque certains exports de grosses bases des données nécessitent des calculs croisés complexes. L’autre solution consiste à exporter les tables, puis à les retravailler avec les tableaux croisés dynamiques de Excel ou Access, par exemple, dont c’est la vocation.
Mode d’emploi pour un export PHP propre, d’une table MySQL vers un ficher Excel (csv en l’occurrence) …
La fusion de 2 cellules ressemble à une phagocytose : la cellule de gauche gobe sans complexe tout le contenu de celle de droite !
D’où mon dilemme lorsque j’ai dû trouver une solution pour fusionner 2 colonnes entières en gardant les contenus des cellules…
Comme d’habitude c’est tout simple : il suffit de connaître la formule magique, qui permet même de rajouter le même texte à toutes les cellules de la colonne […]

Les dernières versions de Microsoft Excel proposent des outils sympas et rapides, comme des automatisations de mises en forme assez poussées pour les tableaux. C’est sympa, mais l’autre jour je me suis aperçue qu’il n’était plus possible de fusionner des plages de cellules, par exemple, une fois que le tableau est transformé.
Et là, pouf ! … pas moyen de supprimer cette fichue mise en forme
… Il y a bien [CTRL+Z]… mais du coup toutes les modifications intermédiaires sont également perdues.
En fait, si, c’est possible. Mais pas vraiment intuitif […]
Je ne sais pas pour vous, mais moi les macros d’Excel m’énervent… Il y a toujours un pro pour vous dire que c’est évident d’un air de « FastocheFingerInTheNose« , mais chez moi ça cafouille 2 fois sur 3. Excel c’est un logiciel, un logiciel c’est comme une voiture : pas la peine de savoir démonter le moteur pour conduire
Donc… donc l’autre jour je cherchais comment supprimer une ligne sur deux sans macros sur une liste trèèèèès longue d’un tableau exportée en CSV d’une base SQL.
Soudain hop ! <Mode Humble> l’éclair de génie :
NOTA : article mis à jour ici (juin 2015)
Depuis la version d’Excel 2007, les exportations en PHP de données sous Excel (par exemple des extractions depuis une table MySQL) déclenchent l’affichage d’un désagréable message d’erreur à l’ouverture du .xls
Il y a bien la solution de passer outre, les données sont tout de même présentes dans le fichier exporté…
Mais il existe une autre solution plus « propre » !
… avec en prime : comment exclure les lignes vides de la boucle de lecture ?
comme l’oeuf de Christophe colomb… il suffisait d’y penser
Pour donner une valeur à une variable inconnue, en fonction d’une valeur résultat définie
Petit lexique des erreurs les plus fréquentes lors de l’utilisation de Microsoft Excel …