Excel外接程序中的Refresh
按钮/方法需要通过外部winform应用程序调用。这是我的目标:
private Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
public FormMain()
{
InitializeComponent();
RefreshExcelSheet(@C:\a.xls");
}
private bool RefreshExcelSheet(string path)
{
using (var wb = excel.Workbooks.Open(path).WithComCleanup())
如何点击“刷新”按钮或只是调用其活动?
我正在查看这些文章,但他们正在使用VBA,我想要一个Winform应用程序来打开电子表格并单击按钮:
Accessing a VSTO application-addin types from VBA (Excel)
Expose VSTO functionality to VBA w/o local admin
答案 0 :(得分:1)
解决此问题的最简单方法是将现有的自定义.net方法公开为COM方法,方法是使其成为可调用的包装器对象(CCW)。 VSTO为您提供了一种公开COM自动化服务器的简单方法。
编辑OP:
Andrew Whitechapel已经更新了这篇文章,但是我无法让它发挥作用。即使使用StandardOleMarshalObject
和注册COM互操作,我仍然会收到与本文中详述的相同的错误消息:http://blogs.msdn.com/b/andreww/archive/2008/08/11/why-your-comaddin-object-should-derive-from-standardolemarshalobject.asp
答案 1 :(得分:0)
如果您可以扩展Excel加载项,匿名类型的建议肯定是最好的方法。
如果它是第三方工具,仍然可以使用功能区的IAccessible接口来调用功能区按钮。但是,您可以预期这会复杂得多。如果您必须遵循该路径,请访问以下链接: