Bonjour,
Depuis hier, j'essaie de remplir un document word (2007 et 2010) à l'aide de signets positionnés et de c# bien entendu. J'utilise les API openXML (au passage que je trouve puissante) et pour cela voici le code utilisé :
public static void AddTextToBookmark(string fileName, string textToAdd)
{
IDictionary<String, BookmarkStart> bookmarkMap = new Dictionary<String, BookmarkStart>();
using (var document = WordprocessingDocument.Open(fileName, true))
{
var doc = document.MainDocumentPart;
foreach (BookmarkStart bookmarkStart in doc.RootElement.Descendants<BookmarkStart>())
{
bookmarkMap[bookmarkStart.Name] = bookmarkStart;
}
foreach (BookmarkStart bookmarkStart in bookmarkMap.Values)
{
if (bookmarkStart.Name == "date")
{
Text text = new Text(textToAdd);
Run run = new Run(new RunProperties(new Bold()));
run.Append(text);
bookmarkStart.InsertAfterSelf(run);//.InsertAfterSelf(run);
}
}
doc.Document.Save();
}
Le plus fabuleux, c'est que cela fonctionne parfaitement bien avec word 2007 mais word 2010 il m'est impossible de rajouter le texte au niveau du signet dans le document ????
Je ne suis pas spécialiste de word mais quelqu'un sait peut être pourquoi ce code se comporte différemment entre les 2 versions word ?
@++
SD