Visual C# 2005开发Office外接程序
发布时间:2023-09-17 06:29:40
一 最合适用来开发Office外接程序的工具即使在VS2005中,仍然是VB.因为Office的对象内核依然是以VB的模式建立的.VB中有大量的函数使用可变数量的参数,而这些函数如果在C#中调用,则不得不用大量的Type.Missing或Missing.Value来填充,C#不允许可变参数.可以在C#中建立包装类,但仍然是非常繁琐的.
二 在vs2005中创建外接程序,如Office程序的插件等,一般应以如下形式建立项目:其它项目类型->共享的外接程序.系统会自动建立调用框架.
public class Connect : Object, Extensibility.IDTExtensibility2
三 在public void OnStartupComplete(ref System.Array custom)中,可建立扩展的工具条,菜单等,如菜单:
Office.CommandBars oCommandBars = null;
Office.CommandBar oStandardBar = null;
oCommandBars = (Office.CommandBars)applicationObject.GetType().InvokeMember("CommandBars", BindingFlags.GetProperty, null, applicationObject, null);
oStandardBar = oCommandBars["Worksheet menu bar"];//这里注意:Office各产品此处的对象命名并不统一.
cmdBarControl = (Office.CommandBarPopup)oStandardBar.Controls.Add(
Office.MsoControlType.msoControlPopup, Missing.Value, Missing.Value, oStandardBar.Controls.Count - 2, true);
通常可以使一个插件响应所有Office产品,但也可以使插件仅针对某些Office组件起作用.这部份工作在建立项目时指定.
四 form.ShowDialog()显示模式对话框(关闭时只隐藏而不销毁窗体),form.Show()显示非模式对话框,当用户点击关闭按钮时将销毁窗体.
五 Form.Show (IWin32Window)可指定窗体的所有者,这在作为Office应用程序的子窗体的插件程序中非常重要.但是如何使用IWin32Window呢?
public class WindowWrap : IWin32Window
{
private IntPtr m_Handle;
public IntPtr Handle
{
get { return m_Handle; }
}
public WindowWrap(IntPtr handle)
{
m_Handle = handle;
}
}
form.Show(new WindowWrap(new IntPtr(applicationObject.Hwnd)));
Application.Hwnd即是宿主程序的窗口句柄,可以如上形式调用.
六 若要在C#中使用Debug.print(),则需包含入System.Diagnostics命名空间.
七 Excel._Worksheet ows = (Excel._Worksheet)(Connect.applicationObject.ActiveWorkbook.ActiveSheet);
取得某一Range对象:ows.get_Range("A1", Missing.Value)此例只返回一个Cell构成的Range.
八 Range.Value2和Text的区别:假设以金额方式显示,则Text的返回值还包括数字前面的货币符号.
另:Range.Value2为空时,Range.Text却可正常显示。
九 Excel的计数单元是以1开始的,而非0.


猜你喜欢
- WinRAR是一款非常常用的压缩和解压缩工具,大部分电脑都是默认安装这款软件,相信大家都用过。我们经常使用WinRAR来打包文件,但是一个一
- 小编给大家带来了sumatra pdf单文件便携版怎么调节调节背景颜色和字体(含快捷键),感兴趣的朋友可以一起看看sumatra pdf是一
- 今天教大家用wps文字同时编辑多个文档设置方法。方便大家同时打开几个或者多个文档进行编辑或者对比。一、WPS多文档标签这个设计大家都应该很熟
- Excel中经常需要使用到建立索引,索引具体该如何进行建立呢?下面是由小编分享的excel表格建立索引的教程,以供大家阅读和学习。excel
- Win10系统编号为KB3124200的更新补丁问题不断,先是不少用户反映KB3124200补丁安装失败,现在又曝出KB3124200会导致
- ios10无法安装更新怎么办?很多用户表示,在更新ios10时总是提示无法安装更新,这是怎么回事呢?而想要升级成功需要手机得保持充足的内存、
- 案例:假设有两个小组,每个小组各有6个人,这两个小组的名单位于两个单独的列中(图1)。我们要在这两个小组中随机挑出选手,需要在另一个新的列中
- 我们使用Excel中最常见的就是制作各类型表格,在增加表格边框时总会不可避免的将表头不需要边框的地方也一同增加了,今天小编就教大
- 多媒体时代的电子文档、表格、演示,大量运用图片、图表、公式、声音、动画等嵌入式对象,在增添了作品的表现力的同时,也给作者的编辑工作带来了一定
- 离开Intel的第一天,一点都不想它。简要总结这款M1 MacBook AIr:1. M1性能表现超出预期的好,速度快到堪称恐怖
- 我们的电脑在更新安装了win101903系统版本之后,有的小伙伴的的电脑就出现了系统突然变得非常卡。内存饱满突然卡死的情况。对于这种问题小编
- 我们使用wps演示文稿的时候,为了让自己的演示文稿更加生动,我们有时候需要插入一些图片,我们如何插入图片并且对插入的图片进行美化操作呢?其实
- Windows 8应用商店无缘无故丢失多么可悲的一件事哈,经过侦探头脑一轮研究后发现是乱优化清理Windows 8导致的,接下来为为大家介绍
- excel日常做表中经常会输入身份证号码,一不小心就可能出错,今天大飞老师就分享这样一个示例EXCEL数据有效性规范身份证号输入。第一步:我
- word2013设置文档的页面背景,方法不仅简单而且很实用的。我们就一起来看看如何在word2013中为文档设置页面背景吧你想让你的文档每天
- Win7系统开机出现grub错误解决方法其实在grub下的重启和关机都是可以软进行的,比如reboot命令就是重启,halt则为关机命令。实
- 看到网上各种各样的文字旋转是不是很羡慕,想自己制作吗?这里小编为大家带来了一款非常好用的ae脚本typemonkey,它能轻松帮你实现文字旋
- Windows 10预览版中的应用商城(Beta)悄然更新,此次更新在打开新商店应用时后台自动进行。带来了显著的性能提升和打开速度提升,在功
- 路由器上的WPS是什么意思?相信很多用户在使用或者设置无线路由器时,都发现了路由器设置界面有一个WPS的启用/关闭选项,在路由器机身上,有一
- 在word文本编辑中,如何来添加或删减底纹或边框?其实方法很简单,接下来小编举例简单的例子告诉大家WPS文字给边框添加底纹的方法,欢迎大家来