如何在C#中使用Open XML从Word文档中查找确切的单词?

用户

我需要在C#中使用Open XML从Word文档中找到要替换的确切单词。目的是用某些特殊字符替换用户的个人详细信息,以使读者看不到它。

例如,用户具有以其表格提及的地址,该地址存储在数据库中,并且他还上传了一个Word文档,该Word文档还包含与他的地址匹配的以下字符串类型。我的目的是将地址与###匹配

签名,以便其他用户看不到该地址。例如

 "422, Plot no. 1000/A, The Moon Residency II, Shree Nagrik Co. Op. Society, Sardarnagar, Ahmedabad.

寻找一个机会,使我成为一个能影响大众并且太有效的个性。在组织上,我将努力在一个单一的工作

无需进行任何专业转换的地方,并且愿意在需要不断发展且需要合并可变域的环境中工作

和。”

我想用“#”符号代替“ Co”,“ Op”。我的输出是这样的:

"422, Plot no. 1000/A, The Moon Residency II, Shree Nagrik #. #. Society, Sardarnagar, Ahmedabad.

寻找一个机会,使我成为一个能影响大众并且太有效的个性。在组织上,我将努力在一个单一的工作

无需进行任何专业转换的地方,并且愿意在需要不断发展且需要合并可变域的环境中工作

和。

现在我有几个问题1.我如何搜索整个单词,现在我的代码将机会单词替换为## portunity,因为该单词具有Op。与Constant相同,将其替​​换为## nstant。如果整个单词匹配,我需要替换。

  1. 我如何匹配单词中的整行,或者可能是整个地址,该地址应整体替换,如果不可能,则应替换70-80%。

目前,我的代码可以将单词替换为word文件。

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);
              }
          }

   }
}
瓦伦·拉索(Varun Rathore)

您将OpenXML与Novacode一起使用时,应该考虑仅使用OpenXML。

关于用“#”替换文本。您将必须遍历word文档中的所有段落,并检查其中的Text元素,以查看要查找的文本是否存在,如果存在,则可以替换该文本。

没有别的了。希望这可以帮助。

IEnumerable<Paragraph> paragraphs = document.Body.Descendants<Paragraph>();
foreach(Paragraph para in paragraphs)
{
    String text = para.Descendents<Text>().FirstOrDefault();
    //Code to replace text with "#"
}

我已经将此代码写出内存了,但是如果继续执行这些行,则将找到解决方案。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在大邮件中搜索确切的单词?

如何使用XSL查找确切的xml内容

如何在python中查找确切的根(立方)

如何从字符串中过滤确切的单词?

如何搜索确切的单词?

使用AWK查找确切的模式

使用正则表达式或哈希图查找确切的单词

在C#中使用LINQ在字符串数组中查找确切的子字符串

如何在Java中使用正则表达式找到确切的单词?

如何使用Excel筛选器“包含”在列中搜索确切的单词?

如何使用搜索模式文件在csv的最后一列中搜索确切的单词?

匹配确切的单词并使用xslt替换单词

如何检查数组中的句子在Swift中是否包含确切的单词?

在列表中查找确切的单词

如果字符串中包含点,则如何grep输入确切的单词

如何根据R中的多个值查找确切的更改年份

使用Excel公式在单元格中查找确切的子字符串

在 Ubuntu/Linux 中查找确切的物理内存使用情况

如何在c ++ 11中使用正则表达式找到确切的子字符串?

如何在 C# 中使用 Open XML SDK 锁定 word 文档上的所有字段(CTRL-A、CTRL-F11)

如何在C#中为面板提供确切的尺寸?

如何根据确切的时间戳查找数据

使用grep / awk / sed查找确切的shell变量

在C#中找出确切的文件类型

如何在python中获取确切的float值?

如何在Android中获取确切的TimeAgo

如何在Makefile中记录确切的配方行

如何在setTimeout函数中获取确切的值

如何在xpath中获取确切的img src