Analyse et génération de fichiers Microsoft Office 2007 (.docx, .xlsx, .pptx)
J'ai un projet web où je dois importer du texte et des images à partir d'un utilisateur fourni par le document, et l'un des formats de Microsoft Office 2007. Il y a également un besoin de générer des documents dans ce format.
Est exécuté le serveur CentOS 5.2 et a PHP/Perl/Python installé. Je peux exécuter local les fichiers binaires et des scripts shell si je dois. Nous utilisons Apache 2.2, mais sera commutation au cours de Nginx une fois il va vivre.
Quelles sont mes options? Quelqu'un a de l'expérience avec cela?
source d'informationauteur DV.
Vous devez vous connecter pour publier un commentaire.
Les formats de fichier Office 2007 sont ouvertes et bien documenté. Grosso modo, tous les nouveaux formats de fichier se terminant par "x" sont compressés zip de documents XML. Par exemple:
Les autres formats de fichier sont à peu près similaires. Je ne sais pas du tout bibliothèques open source permettant d'interagir avec eux, mais en fonction de vos besoins exacts, il n'a pas l'air trop difficile à lire et écrire des documents simples. Certes, il devrait être beaucoup plus facile qu'avec les anciens formats.
Si vous avez besoin de lire les anciens formats, OpenOffice a une API et peut lire et écrire Office 2003 et les vieux documents, avec plus ou moins de succès.
Le python docx module permet de générer formaté Microsoft office docx fichiers à partir de pur Python. Hors de la boîte, il ne les en-têtes, des paragraphes, des tableaux, et des balles, mais le makeelement() module peut être étendue à faire arbitraire des éléments comme des images.
J'ai utilisé avec succès le OpenXML Format SDK dans un projet visant à modifier une feuille de calcul Excel via le code. Cela exigerait .NET et je ne suis pas sûr de savoir comment cela fonctionnerait sous Mono.
Vous pouvez probablement voir le code pour Sphider. Ils docs et post-docs, donc je suis sûr qu'ils puissent les lire. Peut également vous conduire dans la bonne direction pour les autres formats Office.