获取不带空格的字符数
本文关键字:字符 空格 获取 | 更新日期: 2023-09-27 18:19:51
我正在用C#编写一个Office加载项。我正在尝试从带有WdBuiltInProperty
的Word文档中获取没有空格的字符数。但是,转换为long
不起作用。
错误消息是:
类型为"System._ComObject"的 COM 对象不能转换为"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 ^^^
}
}
问题:
- 如何正确完成转换?
和/或
- 有没有另一种方法可以获取没有空格的字符数?
而不是BuiltInDocumentProperties
,使用具有Count
属性的Characters
。
long c = doc.Characters.Count;
https://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.characters.count.aspx
编辑(来自 VBA 示例(:
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
int c = doc.BuiltInDocumentProperties[Word.WdBuiltInProperty.wdPropertyCharacters].Value;
BuiltInDocumentProperties[]
的结果是Office.DocumentProperty
(可以通过检查 Word VBA 编辑器中的"局部变量"窗口找到(,并且默认.Value
属性包含该数字。
它在 VBA 中无需.Value
即可工作,因为 VBA 具有不同的默认值赋值 ( Let
(,以及带有 Set
的单独和对象引用赋值。此外,VBA 中的Long
类型在 .NET 中Int32