L'export Excel fonctionne localement, les champs se cachent lors de l'exécution sur le server

OK, alors j'ai une application Web SmartGWT, où j'ai des rapports dans des grids de lists.

J'exporte pour excel à l'aide de l'export embeddede Smartgwt selon les exemples en utilisant listgrid.exportclientdata ();

Voici le problème:

– Lorsqu'il s'exécute localement, tout fonctionne bien et je peux ouvrir le file XLSX et voir toutes datatables.

– En cours d'exécution à partir du server, les colonnes contenant des données sont cachées! Si je fais manuellement la chose "décalage" à partir d'Excel, je peux voir les colonnes …

Mon environnement local est Mac OSX, Mountain Lion (également essayé plus tôt), exécutant Java de Sun. Le server prod est Debian qui exécute OpenJDK.

Je ne sais pas si cela aurait quelque chose à voir avec ça et je ne suis pas en mesure de résoudre le problème … Exécuter mon webapp sur Tomcat6 dans les deux environnements.

Pour d'autres, searchz le volet de stackoverflow pour les réponses aux énigmes dans l'obscurité:

Cela a été causé par certaines fonts qui ne sont pas disponibles dans OpenJDK, sans que des erreurs soient enregistrées n'importe où …

Je suis passé à JDK de Sun sur mon Debian, et les files Excel sont maintenant ouverts et affichés correctement.

Cela se produit également lorsque vous faites face à ce Bogue POI qui semble être lié à un Bogue Java .

Si c'est le cas, changer la police à autre chose que Calibri ou utiliser jre au-dessus de 7u21 devrait résoudre le problème. Vous pouvez également atténuer le problème et éviter que les colonnes ne soient totalement effondrées en utilisant un code comme cette sheet.autoSizeColumn(x); if (sheet.getColumnWidth(x) == 0) { // autosize failed use MIN_WIDTH sheet.setColumnWidth(x, MIN_WIDTH); } sheet.autoSizeColumn(x); if (sheet.getColumnWidth(x) == 0) { // autosize failed use MIN_WIDTH sheet.setColumnWidth(x, MIN_WIDTH); }