科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道在MOSS中为Excel Services编写托管代码形式的用户定义函数(3)

在MOSS中为Excel Services编写托管代码形式的用户定义函数(3)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

MS Office Excel 2007与上一版的Excel一样,都提供了对用户定义函数(UDF)的支持。UDF用于扩展Excel的计算和数据导入能力。我们可以利用UDF来:

作者:sunmoonfire 来源:blog 2007年9月2日

关键字: Service Excel SharePoint SharePoint2007 Office

  • 评论
  • 分享微博
  • 分享邮件

Excel Services维护了一个已注册的UDF组件列表。我们可以启用和禁用每个组件,以便Excel Services加载并调用它们。要注册一个UDF组件,可以在MOSS服务器上如下操作:

  1. 还是在刚刚的SSP主页中,Excel Services设置一节中,点用户定义的函数集

  2. 在用户定义函数页面中,点添加用户定义函数程序集

  3. 在程序集框中, 输入刚才我们在上面创建的UDF组件的路径

  4. 在程序集位置中,选择合适的位置

  5. 在启用程序集中,选中启用(默认就是选中的)

  6. 确定

如果选择的程序集位置是文件路径,并指向一个本地文件夹而不是共享文件夹,那么我们就需要在服务器场的每个前端服务器上都保证可以访问到该本地文件夹。我们可以通过创建一个解决方案包的方式来部署一个UDF 组件。可以参考我前面的文章来创建一个解决方案包

创建并发布一个Excel工作簿来调用UDF

创建一个Excel工作簿来调用UDF

  1. 打开Excel 2007.

  2. 在A1单元格中, 输入公式来调用MyDouble UDF。 MyDouble 函数需要一个double型的参数。本例选取B1单元格来做参数。在A1里输入=MyDouble(B1)

  3. 在 B1里输人数字8

  4. 使 B1单元格成为一个命名范围。首先点公式标签,点B1选中它。在定义名称组中,点定义。在新的名称对话框中名称一栏中输人 MyDoubleParam

  5. 在A2里输人公式调用ReturnDateTimeToday UDF。输人=ReturnDateTimeToday()

  6. 在A3里输人公式调用ReturnDateTimeToday UDF。输人=ReturnDateTimeToday() 。然后,右击单元格A3,在快捷菜单中选择格式化单元格。

  7. 在数字标签下选择日期。在类型列表中选择日期格式,如,*2001-3-14.

  8. 确定

  9. 保存工作簿到本地文件夹中,文件名为"TestSampleUdf.xlsx"

在Excel中,单元格 A1, A2, 和A3 将会被求值为"#NAME?" 。这是因为Excel不能解析到MyDouble UDF 与 ReturnDateTimeToday UDF的调用。当我们用Excel Services显示时,这些公式就可以正常显示了。

最后,发布该工作簿到Excel Services:

  1. 点he Microsoft Office 按钮,选发布,然后选Excel Services

  2. 在 另存为对话框中,点 Excel Services选项

  3. 在Excel Services 选项对话框中,在显示标签中,确认整个工作薄被选中。

  4. 点参数标签

  5. 点添加...按钮

  6. 在添加参数对话框中,选择MyDoubleParam

  7. 点确定, "MyDoubleParam" 就显示在参数列表中了

  8. 确定

  9. 在 另存为对话框中,确保勾选上了在Excel Services中打开 。

  10. 在文件名一栏输入一个受信任的SharePoint文档库的路径,比如,http://MyServer/Shared%20Documents/TestSampleUdf.xlsx.

  11. 保存

当TestSampleUdf.xlsx 工作簿加载到Excel Web Access.中后,这里单元格A1 会显示数字"72" ,因为 B1 * 9 = 8 * 9,等于72。A2 显示一个数字。而A3 显示当前日期。A2单元格中的数字实际上是从1900-1-1到现在的天数 (也可能是从1904-1-1,如果 Excel 被配置为使用1904日期系统)。如果我们在参数面板中改变了传递给myDouble UDF的参数,并点应用, Excel Services就会重新计算A1的值。

通过以上对2007 Office体系中Excel Services的介绍,相信大家已经具备将Excel 2007集成到商业应用中的能力了。 

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章