Points de balle dans Word avec c# Interop
J'ai le code suivant qui est censé ajouter une liste à puces à un document word que je suis en générant automatiquement. D'autres réponses, je crois que le code est correct, mais le résultat ne produit pas de points de balle, il ne semble pas appliquer le tiret soit.
Des Idées?
Microsoft.Office.Interop.Word.Paragraph assets;
assets = doc.Content.Paragraphs.Add(Type.Missing);
//Some code to generate the text
foreach (String asset in assetsList)
{
assetText = assetText + asset + "\n";
}
assets.Range.ListFormat.ApplyBulletDefault(Type.Missing);
//Add it to the document
assets.Range.ParagraphFormat.LeftIndent = -1;
assets.Range.Text = assetText;
assets.Range.InsertParagraphAfter();
OriginalL'auteur Fraser Connor | 2012-07-16
Vous devez vous connecter pour publier un commentaire.
Cela se produit parce que vous êtes à l'ajout de plusieurs paragraphes à la plage après la plage (il me semble que la définition de la propriété Text est équivalent à InsertAfter). Vous souhaitez InsertBefore la gamme, de sorte que la mise en forme définie est appliquée.
Notez que nous avons ajouter une Extrémité de la marque de Paragraphe à tous les éléments, sauf le dernier. Vous recevrez un vide balle si vous ajoutez un à la dernière.
InsertAfter ne fonctionne pas car la mise en forme (puce par défaut) n'est pas appliquée. Donc ce code utilise InsertBefore et ajoute les éléments dans l'ordre inverse.
Ce qui explique probablement pourquoi j'ai eu tellement de difficulté à obtenir les points de balle à appliquer pour corriger les parties du document. J'ai fini par avoir à être très prudent de mettre en place ma gamme avant d'utiliser l'insérer après. Il a fait un travail à la fin.
Je ne pouvais pas comprendre comment mettre de la gamme et d'obtenir InsertAfter de travail, c'est ce que j'ai essayé en premier. Si vous avez une autre réponse, vous devez l'ajouter.
J'ai ajouté ma réponse en fonction de votre réponse, mais l'insertion de la liste dans l'ordre correct.
OriginalL'auteur Tergiver
Ceci est basé sur Tergiver de réponse. La différence est qu'il insère les éléments de la liste dans l'ordre correct après le premier paragraphe créés. Pour votre propre utilisation en font le démarrage de gamme égale à l'élément que vous souhaitez insérer la liste après.
Veuillez noter que je ne comprends pas vraiment ce que je fais avec la gamme ici. Cette solution a été obtenu après de considérables d'essai et d'erreur. Je soupçonne qu'il peut avoir à faire avec le fait que je suis en réutilisant la même gamme de Tergiver la solution est de saisir une nouvelle gamme chaque fois que la plage est accessible. Je ne comprends pas les lignes suivantes:
Généralement toutes les modifications à apporter au code ci-dessus et la liste s'entremêlent avec l'élément précédent. Si quelqu'un pourrait-il expliquer pourquoi cela fonctionne, je lui en serais reconnaissant.
OriginalL'auteur Giles Roberts
Vous pouvez essayer de bloc de code ci-dessous si vous souhaitez liste-sous - relations:
Attention sur ce point: Si vous ne savez pas d'entrée de longueur, vous ne devez pas définir la fin de la plage de la valeur comme ceci:
OriginalL'auteur Salih KARAHAN