Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Julien Chable

He blogs, you blog, I blog ...

Archives

[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

- Merci par Blog de Jérémy Jeanson le 10-01-2019, 20:47

- Office 365: Script PowerShell pour auditer l’usage des Office Groups de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 11:02

- Office 365: Script PowerShell pour auditer l’usage de Microsoft Teams de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 10:39

- Office 365: Script PowerShell pour auditer l’usage de OneDrive for Business de votre tenant par Blog Technique de Romelard Fabrice le 04-25-2019, 15:13

- Office 365: Script PowerShell pour auditer l’usage de SharePoint Online de votre tenant par Blog Technique de Romelard Fabrice le 02-27-2019, 13:39

- Office 365: Script PowerShell pour auditer l’usage d’Exchange Online de votre tenant par Blog Technique de Romelard Fabrice le 02-25-2019, 15:07

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Stream Portal par Blog Technique de Romelard Fabrice le 02-21-2019, 17:56

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Video Portal par Blog Technique de Romelard Fabrice le 02-18-2019, 18:56

- Office 365: Script PowerShell pour extraire les Audit Log basés sur des filtres fournis par Blog Technique de Romelard Fabrice le 01-28-2019, 16:13

- SharePoint Online: Script PowerShell pour désactiver l’Option IRM des sites SPO non autorisés par Blog Technique de Romelard Fabrice le 12-14-2018, 13:01