65.9K
CodeProject 正在变化。 阅读更多。
Home

数字拼写器 COM 组件

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.60/5 (6投票s)

2009年1月14日

CPOL

1分钟阅读

viewsIcon

36595

downloadIcon

521

用于在 Excel 中将数值转换为英文/罗马尼亚语单词的组件

原始文章:COM 数字拼写器

引言

一些时间以前,我需要在 Excel (我记得是 Office 2003) 中将数字打印为文本。在互联网上搜索,我找到了一个用于英语的 解决方案,但没有针对罗马尼亚语的解决方案。

因此,我创建了一个可重用的代码片段,可以尽可能在许多环境中轻松使用。我选择 COMATL 作为解决此问题的方法。 这也是我生锈的 COM / C++ 技能的一个很好的编程练习,我计划将其作为我未来所有 COM 对象的模板使用。

使用方法  

要安装 COM 对象,只需在 NumberSpeller.zip 归档文件中运行 Install.bat
这是使用 NumberSpeller COM 对象的 Excel 宏

Function Spell(n As Currency) As String
'Create the speller object.
Dim s As NumberSpellerLib.speller
Set s = New NumberSpellerLib.speller

Dim o As Object
Set o = s
o.Language = "ro"
Spell = o.Translate(n)
End Function

这是从 WSH 脚本使用该组件的另一个示例

// Create the speller object.
var speller = new ActiveXObject("NumberSpeller.Speller");

// Set Romanian language
speller.language = "en";

////////////////////////////////////////////
// Modify the  number constant below.
var numberToTranslate = 101001;

// Translate number to text.
try
{
    var textNumber = speller.Translate(numberToTranslate);
    WScript.Echo(textNumber);
}
catch (e)
{
    // Display details about any thrown exceptions.
    WScript.Echo(e.name + ": " + e.description + "  " + e.number);
}

关注点

  • 通过实现 IErrorInfo 接口支持错误信息。
  • CHM 格式的帮助文件和在 MIDL 源代码文件中指定的上下文标识符。
  • 使用 ATL 提供的 CComBSTR 类进行 BSTR 操作。
  • IDispatch 支持,因此该组件可以从脚本环境中使用。
  • 拼写实现本身以及对多种语言的支持(目前仅支持罗马尼亚语和英语)。 
© . All rights reserved.