我正在使用开放XML SDK向Word文档添加书签,我还以编程方式设置书签ID和名称,在Word中打开文档后,我将文档重新打开为WordprocessingDocument,我发现书签ID被更改为0,1,2 ...之类的值,我想知道为什么Word正在修改书签ID,我仍然可以使用该名称来查找书签而不是id,因为我对id和name使用相同的值但这种行为对我来说很奇怪。
以下是我使用的代码:
BookmarkStart bookmarkStart1 = CreateBookmarkStart(entity.Id.ToString(), entity.Id);
BookmarkEnd bookmarkEnd1 = CreateBookmarkEnd(entity.Id);
Paragraph paragraph1 = CreateParagraph();
body.Append(bookmarkStart1);
body.Append(paragraph1);
body.Append(bookmarkEnd1);
private static BookmarkStart CreateBookmarkStart(String name, long id)
{
return new BookmarkStart
{
Name = name,
Id = id.ToString()
};
}
private static BookmarkEnd CreateBookmarkEnd(long id)
{
return new BookmarkEnd() { Id = id.ToString() };
}
使用的ID是如下值:245103,39045 ......
答案 0 :(得分:1)
正如您所注意到的,您可以(而且应该)依赖书签名称,而不是ID。像REF字段之类的东西使用名称,而不是ID。
ID似乎只用于配对书签开始和结束点标记。