こんにちはよく私はあなたが持っているしたいハイパーリンクの種類を知りませんが、私は同じ文書内のブックマークへのハイパーリンクの例を与える、私たちは名前の段落に追加ブックマークを持ってsuposeてみましょうこのような「モップ」:
OpenXmlProcess.BookmarkStart bMrkS = new OpenXmlProcess.BookmarkStart() { Name = "Mop", Id = "1" };
OpenXmlProcess.BookmarkEnd bMrkE = new OpenXmlProcess.BookmarkEnd() { Id = "1" };
myParagraph.Append(bMrkS);
myParagraph.Append(bMrkE);
その後、この方法は、私たちには、テキスト「機能要件」にハイパーリンクを追加することができます。
if (para.InnerText == "Functional Requirements:")
{
//--We remove the current texts of the paragraph, a new one will be added within the hyperlink
foreach (OpenXmlProcess.Text tes in para.Descendants<OpenXmlProcess.Text>().ToList())
{
tes.Remove();
}
//-------------Apply some style--------------
OpenXmlProcess.RunFonts runFont = new OpenXmlProcess.RunFonts();
runFont.EastAsia = "Arial";
OpenXmlProcess.FontSize size = new OpenXmlProcess.FontSize();
size.Val = new OpenXML.StringValue("20");
//-------------------------------------------
OpenXmlProcess.Hyperlink hyp = new OpenXmlProcess.Hyperlink() { History = true, Anchor = "Mop" }; //--Point to the bookmark
OpenXmlProcess.Run ruG = new OpenXmlProcess.Run() { RsidRunProperties = "00D56462" };
OpenXmlProcess.RunProperties runProp = new OpenXmlProcess.RunProperties();
OpenXmlProcess.RunStyle rnStyl = new OpenXmlProcess.RunStyle() { Val = "Hyperlink" };
runProp.Append(rnStyl);
runProp.Append(runFont);
runProp.Append(size);
//----Create a new text with our original string and append it to the hyperlink
OpenXmlProcess.Text txL = new OpenXmlProcess.Text();
txL.Text = "Functional Requirements:";
ruG.Append(runProp);
ruG.Append(txL);
hyp.Append(ruG);
para.Append(hyp); //Append the hyperlink to our paragraph
}
基本的に私はexistenテキストを削除し、パラに追加しますブックマークへのハイパーリンクを、テキストが有する文字列でグラフ化する。ハイパーリンクを削除するには
がほぼ同じである、現在のテキストを削除し、通常の1を追加します。あなたはそれが、おかげであると思われる場合
if (para.InnerText == "Functional Requirements:")
{
//--We remove the current text, a new one will be added within the hyperlink
foreach (OpenXmlProcess.Text tes in para.Descendants<OpenXmlProcess.Text>().ToList())
{
tes.Remove();
}
//-------------Apply some style--------------
OpenXmlProcess.RunFonts runFont = new OpenXmlProcess.RunFonts();
runFont.EastAsia = "Arial";
OpenXmlProcess.FontSize size = new OpenXmlProcess.FontSize();
size.Val = new OpenXML.StringValue("20");
//-------------------------------------------
OpenXmlProcess.Run ruG = new OpenXmlProcess.Run() { RsidRunProperties = "00D56462" };
OpenXmlProcess.RunProperties runProp = new OpenXmlProcess.RunProperties();
runProp.Append(runFont);
runProp.Append(size);
//----Create a new text with our original string
OpenXmlProcess.Text txL = new OpenXmlProcess.Text();
txL.Text = "Functional Requirements:";
ruG.Append(runProp);
ruG.Append(txL);
para.Append(ruG);
}
は、それはあなたのお役に立てば幸い、答えとしてそれをマークしてください。
ここでは何が効果がありませんか?コンソールに印刷している行には行かないのですか? –
あなたの問題ではなかったので私の答えを削除しました。私はopenxml sdkを使ってこれを管理しているのを本当に認識していませんが、ドキュメントから、段落のPrependChild()そのリンクを削除して既存の段落を削除します。お役に立てれば。 –
私はそれを指摘してくれたことに感謝します –