根据msdn修改( http://support.microsoft.com/kb/248822/zh-cn )
概要
<script type="text/javascript">loadTOCNode(1, 'summary');</script>
可以在 COM 对象(或 ActiveX DLL)中创建您自己的自定义函数,并将这些函数公开给 Microsoft Office 电子表格组件,以便在单元格公式中使用。本文介绍如何创建、部署以及与电子表格组件一起使用 COM 对象
本文中讨论的示例 COM 对象公开了两个公用函数:
GetTicks() 和
CustomTrend()。
• | GetTicks 此函数返回一个值,该值代表自系统启动之后所经过的毫秒数。它返回的值是从对 GetTickCounts API 函数的调用中获得的。 |
• | CustomTrend 电子表格组件不支持在单元格中使用数组公式。因此,它不支持返回值数组的任何 Excel 工作表函数。返回值数组并且在电子表格组件中不受支持的常用 Excel 工作表函数有 LINEST、LOGEST、TREND 和 TRANSPOSE。 CustomTrend 函数演示如何使 Excel 自动调用这些不受电子表格组件支持的函数中的其中一个:TREND 函数。利用自动化功能,Excel TREND 函数会向 COM 对象返回一个值数组;然后,CustomTrend 会根据函数的其中一个参数返回该数组中的一个元素。由于 COM 对象函数无法向电子表格组件返回一个值数组,因此您可以根据需要多次调用 CustomTrend 函数,以便从产生的数组中检索所有元素。 注意:由于示例 COM 对象会实现 Microsoft Excel 自动化,因此使用此示例 COM 对象的客户端上必须安装 Microsoft Excel。 |
创建 COM 对象
<script type="text/javascript">loadTOCNode(3, 'moreinformation');</script>1. | 启动 Microsoft Visual Basic,并创建一个新的 ActiveX DLL 项目。 |
2. | 将该项目命名为 OWCAddin。 |
3. | 将类命名为 MyFunctions。 |
4. | 在“项目”菜单上,单击“组件”,然后选择“Microsoft Office Web Components 11.0”。 |
5. | 将以下代码添加到 MyFunctions 类的代码模块中: |
6. | 在文件菜单上,选择生成 OWCAddin.dll 以生成 DLL。 |
7. | 将项目保存为 OWCAddin.vbp。 |
将 COM 对象打包
<script type="text/javascript">loadTOCNode(3, 'moreinformation');</script>1. | 启动打包和部署向导。开始菜单中Microsoft Visual Studio 6.0 Tools->Package & Deployment Wizard |
2. | 选择 OWCAddIn.vbp 并单击打包。 |
3. | 对于程序包类型,请选择 Internet 程序包,并单击下一步。 |
4. | 选择一个程序包文件夹并单击下一步。 |
5. | 收到说明 MSOWC.dll 缺少依赖项信息的消息后,单击确定。 注意:在 Microsoft Office 2003 中,当您收到说明 OWC11.dll 缺少依赖项信息的消息时,请单击确定。 |
6. | 在包含文件的列表中,选择 OWC11.dll,然后单击下一步。 |
7. | 单击下一步以接受文件来源。 |
8. | 对于安全设置,请为可安全执行脚本和可安全执行初始化选择是,然后单击下一步。 |
9. | 单击完成以生成 CAB 文件。 |
使用电子表格组件(该组件在 COM 对象中使用自定义函数)创建 HTML 页面
<script type="text/javascript">loadTOCNode(3, 'moreinformation');</script>1. | 使用记事本创建一个包含以下代码的新文本文件: 注意:您需要修改 OWCAddin 对象的 <OBJECT> 标记,以使它包含 clsid 和 codebase 的正确值。您可以通过在注册表编辑器 (Regedit.exe) 中检查注册表项 HKEY_CLASSES_ROOT/OWCAddin.MyFunctions/Clsid 来确定 COM 对象的类 ID。codebase 标记应该包含您使用打包和部署向导创建的 CAB 文件的位置。也可以再*.CAB目录下找到一个OWCAddin.HTM中找到classID |
2. | 将该文本文件另存为 CustomFunction.htm。 |
3. | 在 Windows 资源管理器中双击 CustomFunction.htm 以便在浏览器中查看它。 |
4. | 在单元格 D2 至 D5 中分别输入下列公式:
D2:=CustomTrend(B2:B13, A2:A13, C2:C5, 1) D3:=CustomTrend(B2:B13, A2:A13, C2:C5, 2) D4:=CustomTrend(B2:B13, A2:A13, C2:C5, 3) D5:=CustomTrend(B2:B13, A2:A13, C2:C5, 4) D2: 146171.52 D3: 147189.70 D4: 148207.88 D5: 149226.06 |
5. | 在单元格 F1 中,输入公式:
=GetTicks() |