Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[SPS 2003] Ouverture paramétrée d'un document word

1 réponse
Avatar
Nicolas
Bonjour

Je poste mon message dans ce newsgroup car il est plus lié à SharePoint plutôt qu'à Word, je m'explique..

Je développe une webpart qui doit permettre de créer un nouveau document Word dont les balises XML (d'un schéma XML) doivent être initialisées à l'ouverture en fonction de choix faits dans la webpart (combobox, listbox, ...)

La solution choisie est de générer dynamiquement dans une page aspx le contenu du fichier WordML et de le renvoyer au navigateur avec un content-type particulier. De plus, un point important est que le document doit s’ouvrir directement dans Word

Ma page aspx ressemble à ça (en simplifié)

private void Page_Load(object sender, System.EventArgs e

Response.ContentType = "text/xml"
Response.Charset = ""

string request = "<?xml version=\"1.0\"?><?mso-application progid=\"Word.Document\"?><w:wordDocument xmlns:w=\"http://schemas.microsoft.com/office/word/2003/wordml\"><w:body><w:p><w:r><w:t>Hello World !</w:t></w:r></w:p></w:body></w:wordDocument>"

Response.Write(request)


et une page de test ressemblerait à ça

<html><head><script language="javascript"
function EditDoc(strDocument

EditDocumentButton = new ActiveXObject("SharePoint.OpenDocuments.2")
if (EditDocumentButton)

EditDocumentButton.EditDocument(strDocument, "Word.Document");
}
els

alert('erreur')


</script></head><body><a HREF="#" onclick="EditDoc('http://monserver/mapage.aspx')">Test</a></body></html

J'utilise donc l'activeX pour permettre l'ouverture du document directement dans Word, le premier paramètre est normalement l'url d'un fichier mais là c'est l'url de ma page aspx qui génère le contenu. Apparement, il serait possible de jouer avec le content-type pour que le navigateur sache qu'il doit ouvrir le doc directement dans Word

Le résultat que j'ai pour l'instant, c'est l'ouverture de ma page aspx dans Word mais pas le contenu généré

Voilà, j'espère avoir été clair dans la description de mon pb. Avez-vous déjà travaillé sur ce genre de problème ? Connaissez-vous le content-type à définir ? Voyez-vous une autre solution pour résoudre mon problème

Merci de vos réponse

1 réponse

Avatar
EROL [MVP SPS]
Bonjour,

J'ai lu un article sur ce site de L.Kempé sur ce sujet,
http://www.techheadbrothers.com/DesktopDefault.aspx

Allez voir... Mais ce n'est pas une garantie de solution ;+)

Allez sur le site je l'ai refait et largement développé,
voir : http://www.mysps.info

@bientôt sur les news de SharePoint.
Bonne fin de semaine.

EROL
[MVP SharePoint Microsoft France]
*****************************************
http://www.sharepointpro.net
http://www.clubsps.org
http://sharepointerol.blogspot.com/
http://giraudyp.perso.cegetel.net/Livre2.htm

============================= .....on ne voit bien qu'avec le coeur.
L'essentiel est invisible pour les yeux.
A. de Saint-Exupery. Le Petit Prince.
============================= "Nicolas" a écrit dans le message de
news:
Bonjour,

Je poste mon message dans ce newsgroup car il est plus lié à SharePoint


plutôt qu'à Word, je m'explique...

Je développe une webpart qui doit permettre de créer un nouveau document


Word dont les balises XML (d'un schéma XML) doivent être initialisées à
l'ouverture en fonction de choix faits dans la webpart (combobox, listbox,
...).

La solution choisie est de générer dynamiquement dans une page aspx le


contenu du fichier WordML et de le renvoyer au navigateur avec un
content-type particulier. De plus, un point important est que le document
doit s'ouvrir directement dans Word.

Ma page aspx ressemble à ça (en simplifié) :

private void Page_Load(object sender, System.EventArgs e)
{
Response.ContentType = "text/xml";
Response.Charset = "";

string request = "<?xml version="1.0"?><?mso-application


progid="Word.Document"?><w:wordDocument
xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml"><w:body><w:
p><w:r><w:t>Hello World !</w:t></w:r></w:p></w:body></w:wordDocument>";

Response.Write(request);
}

et une page de test ressemblerait à ça :

<html><head><script language="javascript">
function EditDoc(strDocument)
{
EditDocumentButton = new ActiveXObject("SharePoint.OpenDocuments.2");
if (EditDocumentButton)
{
EditDocumentButton.EditDocument(strDocument, "Word.Document");
}
else
{
alert('erreur');
}
}
</script></head><body><a HREF="#"


onclick="EditDoc('http://monserver/mapage.aspx')">Test</a></body></html>

J'utilise donc l'activeX pour permettre l'ouverture du document


directement dans Word, le premier paramètre est normalement l'url d'un
fichier mais là c'est l'url de ma page aspx qui génère le contenu.
Apparement, il serait possible de jouer avec le content-type pour que le
navigateur sache qu'il doit ouvrir le doc directement dans Word.

Le résultat que j'ai pour l'instant, c'est l'ouverture de ma page aspx


dans Word mais pas le contenu généré.

Voilà, j'espère avoir été clair dans la description de mon pb. Avez-vous


déjà travaillé sur ce genre de problème ? Connaissez-vous le content-type à
définir ? Voyez-vous une autre solution pour résoudre mon problème ?

Merci de vos réponses