http://www.pptjcw.com

word制作表格教程:Visual C# 2005开发Office外接程序

    一 最合适用来开发Office外接程序的工具即使在VS2005中,word教程视频全集自学,仍然是VB.因为Office的对象内核依然是以VB的模式建立的.VB中有大量的函数使用可变数量的参数,而这些函数如果在C#中调用,则不得不用大量的Type.Missing或Missing.Value来填充,word教程网,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(),word教程网,则需包含入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.

    提示:如果您觉得本文不错,请点击分享给您的好友!谢谢

    上一篇:word文档编辑教程:Visual C# 2005开发Office外接程序 下一篇:没有了

    郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。