c# - MVC4 c# 获取office word文档,并转换为列表

标签 c# .net asp.net-mvc-4 .net-4.5

所以,我有一个 office word 文档。我需要浏览文档并获取所有“单词”。然后我想将所有这些“单词”放入 List 对象中。这是我当前问题的一部分。

第 2 部分.... 节省资源的方法我可以比较 2 个“单词”以查看它们是否匹配。我找到了这个 .ddl 我不知道它是否是正确的... http://diffplex.codeplex.com/

我在这个问题 here 中找到了这段代码, 但对在我的服务器上安装 office 有依赖性,这是一个 web 应用程序..

最佳答案

假设我足够了解你的问题,我会提供一个答案,对我来说是:

第 1 部分:阅读 word 文档。

第 2 部分:比较 word 文档,我将其解释为比较从每个单词解析的字符串。

//Part 1
var applicationWord = new Microsoft.Office.Interop.Word.Application();
object filename = @"C:\Users\Omri\Desktop\Test.docx";
object missing = System.Reflection.Missing.Value;
Microsoft.Office.Interop.Word._Document oDoc;

oDoc = applicationWord.Documents.Open(filename, ref missing, ref missing, ref missing,
                 ref missing, ref missing, ref missing, ref missing,
                 ref missing, ref missing, ref missing, ref missing, ref missing, ref missing,
                 ref missing, ref missing);

这只是打开word文档。顺便说一句,您可能需要在您的服务器上安装 Office,我看到您对此很擅长。

现在解析字符串 - 我提供了一个正则表达式来从字符串中删除所有非字母数字字符,这是我的工作假设。您可以根据自己的喜好进行更改。还用图片等进行了测试,它删除了它们。

var wordsList = new List<string>();
foreach (var range in oDoc.StoryRanges)
{
      var tempString = range.Text;
      tempString = Regex.Replace(tempString, @"[^a-zA-Z0-9 -]", string.Empty);
      wordsList.AddRange(tempString.Split(new char[] { ' ' } ).ToList());
}

这为您提供了 word 文档中的字符串列表。

//Part 2
bool wordMatch = data.Count == data2.Count; //quick initial check;
//you can check for wordMatch == false and return immediately

wordsList.Sort(); //sorting in lexicographical order so will be easy to compare
wordsList2.Sort(); //this is a 2nd word document
for (int i = 0; i < data.Count; i++)
{
       if (data.ElementAt(i) != data2.ElementAt(i))
       {
           wordMatch = false;
           break;
       }
}

我想就这些了,希望对你有帮助。

关于c# - MVC4 c# 获取office word文档,并转换为列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21589423/

相关文章:

.net - 使用 SolrNet 查询 Solr 时,查看请求的实际 Url 的最简单方法是什么?

security - ASP.NET MVC 4 WebAPI - 可以将 session 状态用于安全资源吗?

C# WMI、性能计数器和 SNMP 天啊!

java - 替换 Java 源文件中的开始注释

c# - 如何用垃圾填充字节数组?

c# - 在 View 中使用 2 个模型时,此调用在以下方法或属性之间不明确 C# razor

c# - ASP.Net MVC4 自定义路由

c# - 如何调试 C# 命令行程序

.net - 如何对 winforms 应用程序进行单元测试

c# - LogicalOperationStack 是否与.Net 4.5 中的异步不兼容