外接程序已经弄好了。就是在Excel2007上加载了我自定义的控件。有个问题,我把解决方案生成的时候,生成出来的是dll文件,然后我就把这个dll文件放到另外一台没有任何环境的电脑上试,当然此电脑上装了Excel2007 还有 .net framework 3.5/4.0 两个都装了。问题就是,我把dll文件放到系统盘下 windows32里面,然后运行 regsvr32 ExcelAddIn1.dll(稍微解释一下,ExcelAddIn1是我创建程序的名称。) 就提示:已加载 ExcelAddIn1.dll,但没找到DllRegisterServer 输入点。无法注册这个文件 请问各位高手是啥问题啊?在网上找了很多资料也没解决。我还是个新手,才了解这个东西不久哦。各位大侠帮帮忙
解决方案 »
- 请教一个软件打包的问题
- Webbrowser如何获取页面Input值
- Winform(C#) 请教如何设置菜单项的可用性,关于menuStrip1
- 两条512M组成双通道快还是一条512M加一条1G快?
- (急)使用sql2005做的vs2005项目在用户那用安装算sql2005吗。
- "数据源的类型无效。它必须是 IListSource、IEnumerable 或 IDataSource。"}
- 如何开发web上使用的ms project?
- 在winform,xml中怎么获取当前文件夹的路径
- 我的IMessageFilter 怎么没反应???急!
- 如何判断当前日期是当月第几周?
- wpf版在哪?我怎么找不到?问个WPF的焦点的问题
- wpf如何旋转SWF
{
Office.CommandBarButton cmdBarControl = null;
Office.CommandBarComboBox cmdBarControl2 = null;
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
addButton();
} private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
{
}
public void addButton()
{
#region
//Office.CommandBarPopup cmdBarControl = null;
//Office.CommandBar menubar = (Office.CommandBar)Application.CommandBars.ActiveMenuBar;
//int controlCount = menubar.Controls.Count;
//string menuCaption = "神马东西?(&P)";
//// Add the menu.
//cmdBarControl = (Office.CommandBarPopup)menubar.Controls.Add(Office.MsoControlType.msoControlPopup, missing, missing, controlCount, true);
////cmdBarControl.Tag = menuTag; //cmdBarControl2.DescriptionText = "sfsd";
////定义控件部分
//Office.CommandBarComboBox cmdBarControl1 = null;
//Office.CommandBarButton cmdBarControl2 = null;
////cmdBarControl2.Caption= "选择"; //Office.CommandBar menubar1 = (Office.CommandBar)Application.CommandBars.ActiveMenuBar;
//Office.CommandBar menubar2 = (Office.CommandBar)Application.CommandBars.ActiveMenuBar; //int controlCount1 = menubar1.Controls.Count;
//int controlCount2 = menubar2.Controls.Count; //string menuCaption1 = "哈哈?(&P)";
//string menuCaption2 = "选择"; //// Add the menu.
//cmdBarControl1 = (Office.CommandBarComboBox)menubar1.Controls.Add(Office.MsoControlType.msoControlComboBox, missing, missing, controlCount1, true);
//cmdBarControl1.AddItem("第一列值", 1);
//cmdBarControl1.AddItem("第二列值", 2);
//cmdBarControl1.AddItem("第三列值", 3);
//cmdBarControl1.Caption = menuCaption1;
//cmdBarControl2 = (Office.CommandBarButton)menubar2.Controls.Add(Office.MsoControlType.msoControlButton, missing, missing, controlCount2, true); //cmdBarControl2.Caption = menuCaption2;
//cmdBarControl.Tag = menuTag;
#endregion Office.CommandBar menubar = (Office.CommandBar)Application.CommandBars.ActiveMenuBar;
menubar.Visible = true; int controlCount = menubar.Controls.Count;
//string menuCaption = "按钮";
cmdBarControl = (Office.CommandBarButton)menubar.Controls.Add(Office.MsoControlType.msoControlButton, missing, missing, controlCount, true);
cmdBarControl.Caption = "选择";
cmdBarControl.Tag = "选择"; Office.CommandBar menubar2 = (Office.CommandBar)Application.CommandBars.ActiveMenuBar;
int controlCount2 = menubar2.Controls.Count;
string menuCaption2 = "下拉框";
cmdBarControl2 = (Office.CommandBarComboBox)menubar2.Controls.Add(Office.MsoControlType.msoControlComboBox, missing, missing, controlCount2, true);
cmdBarControl2.AddItem("代客批次明细表", 1);
cmdBarControl2.AddItem("房费消费模式分类消费明细表", 2);
cmdBarControl2.AddItem("充值金额明细表", 3);
cmdBarControl2.ListIndex = 1;
cmdBarControl2.Caption = menuCaption2;
cmdBarControl2.Width = 500;
cmdBarControl.Click += new Microsoft.Office.Core._CommandBarButtonEvents_ClickEventHandler(cmdBarControl_Click);
}
private void cmdBarControl_Click(Microsoft.Office.Core.CommandBarButton cmdBarbutton, ref bool Cancel)
{
string SelectValues = this.cmdBarControl2.Text.ToString();
Form1 F1 = new Form1(SelectValues);
F1.ShowDialog();
}
#region VSTO generated code /// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InternalStartup()
{
this.Startup += new System.EventHandler(ThisAddIn_Startup);
this.Shutdown += new System.EventHandler(ThisAddIn_Shutdown);
} #endregion
}
这个是我在Excel上加载的控件。再强调一下,我是用ASP.Net去做。最后生成的是Dll文件。放到另外一台电脑上(此电脑装了.net framework 3.5/4.0)上面。也装了Excel2007。但加载进去的时候就是包我那个Dll文件不是有效的office加载项求解,各位大侠。。
1. bin/debug 下会看到 .dll 和 .vsto 两个文件,这是部署的主要输出文件。
2. 客户端还需要安装 VSTO Runtime V4.0(因为你是VS2010开发的)
http://www.microsoft.com/download/en/details.aspx?id=20479
以及 Office PIAs
http://www.microsoft.com/download/en/details.aspx?id=18346
3. 正常应该制作 Install 来部署的,简单的测试可以直接将
[1.]里的(.dll和.vsto)拷贝到客户端(它两必需在一起),然后双击.vsto,这就和安装程序一样的。
下面是完整的制作安装程序的blog:
http://yaojian.blog.51cto.com/1581802/314063
vstor40_x86.exe 下这个