2011-09-07 86 views
0

我正在处理需要从文档和修订中统计单词的应用程序。如何使用Interop从C#中获取Excel或PowerPoint文件的修订版本?

你可以看到here,我已经解决了这个Word文档(以及它可以解决的问题),但现在我发现自己想知道如何从Excel或PowerPoint文档中获取这些数据。

MSDN文档没有帮助迄今为止 - 我将继续寻找,但如果有人知道答案,我会欣赏的一点帮助。

编辑:因此,采取由@Andrew(感谢去他)所提供的信息,我得到了Excel的部分验证码:

foreach (Excel._Worksheet s in ExcelBook.Sheets) 
     { 
      if (s.UsedRange.Value2 != null) 
      { 
       for (int i = 1; i <= s.UsedRange.Value2.GetLength(0); i++) 
       { 
        for (int j = 1; j <= s.UsedRange.Value2.GetLength(1); j++) 
        { 
         string content = s.UsedRange.Value2[i, j]; 
         MessageBox.Show(i + " - " + j + " - " + content); 
        } 
       } 
      } 
     } 

现在我可以用它来计算所有细胞中的话但是这张表仍然无助于修改 - 任何人都有关于如何跟进这个问题的想法?

回答

2

看来从您链接到Word的OM代码示例,您可以访问它的修订跟踪功能。便利。

PowerPoint没有跟踪任何内容的修订,所以没有什么东西可以与你一起工作,除非像A​​ndrew所说的那样,你从一个演示文稿中提取和存储文本,然后再做同样的事情并比较两者。无论如何,阅读大部分内容并不是那么困难。比较两组寻找修订的文本可能相当复杂。

有一些VBA宏在幻灯片中提取常规文本这里(免责声明:我的网站): http://www.pptfaq.com/FAQ00274.htm

这些都是头脑简单,用文字在分组的形状,表格,图表等不会处理开始,但他们会让你开始。

+0

感谢 - 有这么多 - 可能会做你的建议,但像你说的那样很复杂 - Excel虽然确实有跟踪变化,但我没有看到他们在任何地方的OM。将ListchangesOnNewSheet变为true似乎没有太大帮助,因为某些原因滚动表单永远不会进入历史表单 – 537mfb

1

你应该尝试this

它几个月前帮助了我。这是一个关于CodeProjects的非常好的教程。

+0

谢谢 - 将在早上一看,让你现在 – 537mfb

+0

好了 - 这让我知道如何阅读从细胞中的内容 - 可以用它来计算总的话,但甚至没有提及修改 - 检查的问题 - 我需要在修订中计算单词(添加了多少,删除了多少) - 您的答案有点帮助 - 谢谢 – 537mfb

+0

您的应用程序中没有历史记录?像“文件历史”的东西?例如:程序在早上打开文件,计算单词和保存信息。白天有人打开文件,进行一些更改,晚上你的程序打开文件并计算单词,你知道不同。这不是你想要的吗? –

相关问题