C# 使用word Interop向段落添加超链接
我试图添加一个超链接到某个XML,该XML插入到Word文档的一个字段中(使用Microsoft.Office.Interop.Word) 插入的XML包含多个段落,每个段落都包含一些应转换为超链接的文本。包含超链接的文本在找到“Available at”子字符串后从段落末尾提取 以下代码可以创建超链接,但第一个超链接始终应用于所有段落。我希望代码为每个被迭代的段落创建一个超链接 我的猜测是,paragration.Range对象指向的文本实际上是插入的整个XML,而不是包含在段落中的文本。我还确认了C# 使用word Interop向段落添加超链接,c#,office-interop,C#,Office Interop,我试图添加一个超链接到某个XML,该XML插入到Word文档的一个字段中(使用Microsoft.Office.Interop.Word) 插入的XML包含多个段落,每个段落都包含一些应转换为超链接的文本。包含超链接的文本在找到“Available at”子字符串后从段落末尾提取 以下代码可以创建超链接,但第一个超链接始终应用于所有段落。我希望代码为每个被迭代的段落创建一个超链接 我的猜测是,paragration.Range对象指向的文本实际上是插入的整个XML,而不是包含在段落中的文本。我还
段落.Range.Text
属性为每个段落返回正确的文本,因此我完全搞不清Range属性应该是什么
有什么想法吗?提前谢谢
if (!string.IsNullOrWhiteSpace(bibliography))
{
const string linkToken = "Available at ";
field.Result.InsertXML(bibliography);
foreach (Paragraph paragraph in field.Result.Paragraphs)
{
var paragraphText = paragraph.Range.Text;
var indexOfLink = paragraphText.IndexOf(linkToken, StringComparison.OrdinalIgnoreCase);
if (indexOfLink >= 0)
{
var linkStart = indexOfLink + linkToken.Length;
var linkPart = paragraphText.Substring(linkStart);
Uri uriFound;
if (Uri.TryCreate(linkPart, UriKind.Absolute, out uriFound))
{
object linkAddress = uriFound.ToString();
paragraph.Range.Hyperlinks.Add(paragraph.Range, ref linkAddress);
}
}
}
}