2015-10-29 82 views
0

我正在用C#編寫Office加載項。 我試圖從WdBuiltInProperty Word文檔中獲取字符數而沒有空格。但是,轉換爲long不起作用。獲取不帶空格的字符數

的錯誤信息是:

類型的COM對象 「System._ComObject」 不能被轉換爲 「System.IConvertible」

這裏是thisAddIn.cs我的代碼段到目前爲止:

using Word = Microsoft.Office.Interop.Word; 
// ... 
public partial class ThisAddIn 
{ 
    public void Calc() 
    { 
    Word.Document doc = this.Application.ActiveDocument ; 
    long c=doc.BuiltInDocumentProperties[Word.WdBuiltInProperty.wdPropertyCharacters]; 
    // ^^^ Error ^^^ 
    } 
} 

問題:

  1. 轉換如何正確完成?

和/或

  • 是否有另一種方式來獲得字符的數量而不空間?
  • 回答

    0

    而不是BuiltInDocumentProperties,使用Characters它具有Count屬性。

    long c = doc.Characters.Count;

    https://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.characters.count.aspx

    編輯(從VBA example):

    Sub CountChars() 
        Dim iCount(57) As Integer 
        Dim x As Integer 
        Dim iTotal As Integer 
        Dim iAsc As Integer 
    
        Application.ScreenUpdating = False 
        iTotal = ActiveDocument.Range.Characters.Count 
    
        For x = 1 To iTotal 
         iAsc = Asc(ActiveDocument.Range.Characters(x)) 
         If iAsc >= 65 And iAsc <= 122 Then 
         iCount(iAsc - 65) = iCount(iAsc - 65) + 1 
         End If 
        Next x 
        For x = 0 To 57 
         Debug.Print x, iCount(x) 
        Next x 
        Application.ScreenUpdating = True 
    End Sub 
    
    +0

    對不起,沒有,這個計算** **包括空格,但我需要的數**無**空格。 –

    +1

    我發現這個[SO答案](http://stackoverflow.com/a/17126907/3854195),解釋如何計算一個特定的字符。您可以使用它來計算空格的數量,然後從總數中減去該空格的數量,或者在迭代時對單個字符進行計數,如果是空格,則從計數中排除。 – Morpheus

    +0

    謝謝你的鏈接!事實上,如果我找不到其他解決方案,我會採取這種方法。簡單地循環閱讀文本並計數。 –

    相關問題