数字拼写器 COM 组件






4.60/5 (6投票s)
用于在 Excel 中将数值转换为英文/罗马尼亚语单词的组件
- 下载完整源代码、编译后的 DLL 和 CHM 帮助文件 - 78.57 KB
- 下载 C++ 示例 - 43.03 KB
- 下载 Excel 示例 - 430.54 KB
- 下载 JS 示例 - 483 B
原始文章:COM 数字拼写器。
引言
一些时间以前,我需要在 Excel (我记得是 Office 2003) 中将数字打印为文本。在互联网上搜索,我找到了一个用于英语的 解决方案,但没有针对罗马尼亚语的解决方案。
因此,我创建了一个可重用的代码片段,可以尽可能在许多环境中轻松使用。我选择 COM 和 ATL 作为解决此问题的方法。 这也是我生锈的 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
支持,因此该组件可以从脚本环境中使用。- 拼写实现本身以及对多种语言的支持(目前仅支持罗马尼亚语和英语)。