Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Julien Chable

He blogs, you blog, I blog ...

[Open XML] Manipuler un document Office 2007 côté serveur et les types MIME indispensables

Le SDK Open XML permet de pouvoir générer ou éditer des documents côté serveur à la volée et sans nécessité l’utilisation d’Office. Une première pour Microsoft qui vient d’être appuyé par Word Services inclus dans SharePoint 2010 (dont vous pouvez télécharger la Beta ici).

Si vous utilisez le format Open XML (.docx, .xlsx, .pptx) vous avez sûrement remarquer que la plupart des serveur Web vous retournent les documents sous la forme d’un zip (et ne vous propose donc pas de l’ouvrir avec Office). En effet la plupart des sites suggère d’utiliser le type MIME ‘x-zip-compressed’ pour ces types de documents Office à cause de l’utilisation de ce format pour stocker les différents éléments d’un document. Il est bien évident que c’est un non sens, surtout si vous voulez que les index des moteurs de recherche puisse interpréter correctement le fichier en tant que document et non comme une simple archive compressée.  Vous me direz que les moteurs de recherche utilisent l’extension pour déterminer la nature du document, sauf que si l’URL de téléchargement se présente sous la forme “/download.aspx?id=12345” et que l’entête filename n’est pas renseignée, l’index ouvrira le document et indexera le contenu de votre document sous sa forme XML. Le type de contenu MIME devient donc la seule source d’information que l’index ou le système possède pour ouvrir de façon décente le document.

Voici la liste des types de contenu pour Office 2007 sans macro :

"application/vnd.openxmlformats-officedocument.wordprocessingml.document" (.docx)
"application/vnd.openxmlformats-officedocument.wordprocessingml.template" (.dotx)
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" (.xlsx)
"application/vnd.openxmlformats-officedocument.spreadsheetml.template" (.xltx)
"application/vnd.openxmlformats-officedocument.presentationml.presentation" (.pptx)
"application/vnd.openxmlformats-officedocument.presentationml.template" (.potx)
"application/vnd.openxmlformats-officedocument.presentationml.slideshow" (.ppsx)

Voici les types pour les documents comportant des macros :

"vnd.ms-word.document.macroEnabled.12"
"vnd.ms-word.template.macroEnabled.12"
"vnd.ms-powerpoint.template.macroEnabled.12"
"vnd.ms-powerpoint.addin.macroEnabled.12"
"vnd.ms-powerpoint.slideshow.macroEnabled.12"
"vnd.ms-powerpoint.presentation.macroEnabled.12"
"vnd.ms-excel.addin.macroEnabled.12"
"vnd.ms-excel.sheet.binary.macroEnabled.12"
"vnd.ms-excel.sheet.macroEnabled.12"
"vnd.ms-excel.template.macroEnabled.12"

Et pour terminer un peu de code ASP.Net pour télécharger un document Word :

Response.ClearHeaders();
Response.AddHeader("content-disposition", "attachment; filename=summary.docx");
Response.ContentType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
Response.ClearContent();
… // Votre contenu
Response.Flush();
Response.Close();

Bon code !

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Posted: dimanche 29 novembre 2009 09:35 par neodante

Commentaires

Pas de commentaires

Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- [SharePoint] Les sessions TechDays 2012… par Le blog de Patrick [MVP SharePoint] le il y a 6 heures et 57 minutes

- TechDays Paris 2012 : Session pleinière jour 3 par Blog Technique de Romelard Fabrice le 02-09-2012, 11:01

- Mishra Reader : un lecteur RSS très Zune Style en Open Source ! par Cyril Sansus le 02-09-2012, 08:28

- [framework 4] Les Tasks et le Thread UI par Fathi Bellahcene le 02-09-2012, 00:33

- Workflow Foundation 3 a un pied dans la tombe par Blog de Jérémy Jeanson le 02-08-2012, 22:15

- TechDays Paris 2012 : Nouvelles tendances du poste de travail - Bring Your own PC par Blog Technique de Romelard Fabrice le 02-08-2012, 19:42

- TechDays Paris 2012 : System Center Service Manager 2012 Vue d’ensemble par Blog Technique de Romelard Fabrice le 02-08-2012, 17:32

- TechDays Paris 2012 : Pleinière second jour par Blog Technique de Romelard Fabrice le 02-08-2012, 16:23

- TechDays Paris 2012 : Retour d'expérience sur la mise en place d'un Cloud Privé par Blog Technique de Romelard Fabrice le 02-08-2012, 16:04

- TechDays Paris 2012 : Comment SharePoint a sauvé mes TechDays par Blog Technique de Romelard Fabrice le 02-07-2012, 23:59