2011-09-07 75 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

您的應用程序中沒有歷史記錄?像「文件歷史」的東西?例如:程序在早上打開文件,計算單詞和保存信息。白天有人打開文件,進行一些更改,晚上你的程序打開文件並計算單詞,你知道不同。這不是你想要的嗎? –

相關問題