2014-06-14 4 views
2

En essayant de créer une application pour Word Office à l'aide de l'API Office js.Modifier le style de document Word avec une application pour Office

J'ai trouvé comment obtenir et le contenu mis dans le document de mot, mais Im ayant du mal à trouver la façon de changer les choses comme styles (titres, etc.)

Avant d'entrer dans la façon de le faire, est-il même possible?

+0

En utilisant l'API setSelectedDataAsync, vous devriez pouvoir passer le HTML ou l'Office Open XML qui supportent le style, donc je suis confus ici. Qu'est-ce que vous essayez d'accomplir exactement qui ne peut pas être fait avec les deux API que vous avez mentionnées? – MrPiao

+0

Lorsque j'ai écrit cette question, je voulais utiliser une API pour utiliser les styles prédéfinis de Word et les utiliser sur le texte sélectionné comme le ferait un utilisateur normal. Quoi qu'il en soit, j'ai fini par insérer ooxml et j'ai fait le travail. Merci beaucoup. –

Répondre

1

La réponse à votre question est oui et maintenant, le mot api est un peu nouveau et il manque certaines fonctionnalités qui peuvent faciliter la vie d'un développeur. Tout d'abord, les en-têtes ne sont pas pris en charge dans le mot api, un travail consiste à créer un contrôle de contenu et à l'utiliser comme en-tête. J'utilise actuellement ce travail dans une application de mots que j'utilise.

Maintenant, pour les styles, les styles sont géniaux à utiliser. Si l'ordinateur d'un utilisateur a actuellement ces styles installés sur son ordinateur, vous pouvez facilement référencer ces styles. Cependant, en tant que développeur, vous avez peut-être découvert que la vie n'est pas facile. Donc moi aussi j'ai couru ce problème et je l'ai abordé en insérant d'abord le contenu désiré, puis en créant une collection d'objets proxy. Je charge ensuite les deux objets et je les synchronise. Après avoir parcourir la collection de paragraphes et ajouter mes styles personnalisés qui est un objet prédéfini que j'ai fait. la fonction suivante vous montrera ce que j'ai essayé d'expliquer. J'espère que cette aide

function InsertHtml(content, styleSelection) { 

    Word.run(function (context) { 

     var range = context.document.body.insertHtml(content, "end"); 
     var paragraphs = context.document.body.paragraphs; 

     return context.sync().then(function() { 

      var index = $.map(headerStyles, function (obj, index) { 
       if (obj.name == styleSelection) { 
        return index; 
       } 
      }) 
      for (var x = 0; x < paragraphs.items.length; x++) { 

       var paragraph = paragraphs.items[x]; 
       paragraph.font.name = headerStyles[index].fontName; 
       paragraph.font.color = headerStyles[index].color; 
       paragraph.font.size = headerStyles[index].size; 
       paragraph.leftIndent = headerStyles[index].indent; 
       //paragraph.lineSpacing = headerStyles[index].lineSpacing; 
       //paragraph.alignment = headerStyles[index].alignment;       
      } 



      return context.sync(); 
     }); 
    }) 
    .catch(feedBackMessage); 
}; 
+0

Salut. J'ai une question à propos de votre réponse. Votre style personnalisé est un objet prédéfini que vous avez créé. Pouvez-vous élaborer s'il vous plaît. Je veux ajouter des styles personnalisés à un document en utilisant mon add-in javascript. Je ne suis pas sûr de savoir comment procéder. Ce serait très utile si vous pouviez expliquer un peu plus. –

+0

Hey Mohamed, les styles personnalisés sont-ils chargés sur le PC? Cet exemple est lorsque je travaillais avec HTML et que je pouvais modifier les styles en ayant une classe css que je pouvais référencer. Un bon point de départ est de créer vos styles localement sur votre PC, d'écrire un paragraphe ou quelques phrases avec ces styles, puis de le lire en HTML en utilisant la fonction JavaScript. Une fois que vous avez chargé le texte au format HTML, vous pouvez voir la sortie créée et la manière dont les classes CSS sont créées pour héberger le style. Vous pouvez ensuite imiter ce comportement pour ajouter des styles personnalisés. – EasyE

Questions connexes