我需要使用C#中的Open XML查找從Word文檔替換的確切詞。 用一些特殊的字符替換用戶的個人信息,使其對讀者不可見。如何在C#中使用Open XML查找word文檔中的確切單詞?
例如,用戶的地址中提到的地址存儲在數據庫 中,他還有一個單詞文件上傳,word文檔還包含以下類型的匹配他的地址的字符串。我的目的是將地址與###
符號相匹配,以便其他用戶不能看到地址。 例如
"422, Plot no. 1000/A, The Moon Residency II, Shree Nagrik Co. Op. Society, Sardarnagar, Ahmedabad.
尋找一個超越使我成爲一個影響大衆的人格並且過於有效的機會。在組織上,我將努力在一個單一的
地方正在作出不專業的切換工作,很想在要求與合併處理
與可變區不斷演變的環境中工作。」
我想,以取代「合作」,「作品」和「#」號 我的輸出會是這樣:
"422, Plot no. 1000/A, The Moon Residency II, Shree Nagrik #. #. Society, Sardarnagar, Ahmedabad.
尋找,在做我影響羣衆個性超越的機會這太有效了。在組織上,我將努力在一個單一的
地方沒有專業的切換正在進行的工作,他會喜歡在要求與合併處理
與可變區不斷演變的環境中工作。 「
現在我有幾個問題 1.如何可以搜索整個單詞,現在我的代碼替換機會用字## portunity因爲這個詞有作品。同樣的,常將其與## nstant取代。 我如果需要全字匹配替換。
- 我怎麼可以在字的整行匹配,或可能是整個地址,這個地址應該是取代作爲一個整體,如果沒有可能,就應更換70-80 %。
目前我的代碼如下圖所示將單詞替換爲單詞文件中。
MemoryStream m = new System.IO.MemoryStream();
//strResumeName contain my word file url
m = objBlob.GetResumeFile(strResumeName);
using (WordprocessingDocument wordDoc = WordprocessingDocument.Open(m, true))
{
body = wordDoc.MainDocumentPart.Document.Body;
colT = body.Descendants<DocumentFormat.OpenXml.Wordprocessing.Text>();
foreach (DocumentFormat.OpenXml.Wordprocessing.Text c in colT)
{
if (c.InnerText.Trim() != String.Empty)
{
sb.Append(c.InnerText.Trim() + " ");
}
}
string[] strParts = sb.ToString().Split(' ');
HyperLinkList = HyperLinksList(wordDoc);
redactionTags = GetReductionstrings(strParts);
}
using (Novacode.DocX document = Novacode.DocX.Load(m))
{
//objCandidateLogin.Address contain my address
if (!String.IsNullOrEmpty(objCandidateLogin.Address))
{
string[] strParts = objCandidateLogin.Address.Replace(",", " ").Split(' ');
for (int I = 0; I <= strParts.Length - 1; I++)
{
if (strParts[I].Trim().Length > 1)
{
document.ReplaceText(strParts[I].Trim(), "#############", false, RegexOptions.IgnoreCase);
}
}
}
}
感謝您的回覆。你能給我一個例子如何通過word文檔中的所有段落找到文本? – user3110006
非常感謝Varun的回覆。 – user3110006