我创建了一个新的Excel应用程序:
Microsoft.Office.Interop.Excel.Application application = new Excel.Application();
现在,我想完全隐藏此应用程序中的功能区(即,不向Excel用户提供再次显示此功能区的可能性)。我该怎么办?
我找到了一个解决方案:
application.ExecuteExcel4Macro("SHOW.TOOLBAR(\"Ribbon\",False)");
但我希望找到一种更优雅的方式,而不是使用宏。这有可能吗?
答案 0 :(得分:0)
试试这个:
If Application.ExecuteExcel4Macro("Get.ToolBar(7,""Ribbon"")") Then
Application.ExecuteExcel4Macro "Show.ToolBar(""Ribbon"", False)"
Else
Application.ExecuteExcel4Macro "Show.ToolBar(""Ribbon"", True)"
End If
......来自其他来源。如果没有宏,就不知道该怎么做。
答案 1 :(得分:0)
您可以尝试使用Microsoft Active Accessibility。
答案 2 :(得分:0)
我的解决方案并不那么优雅,但如果没有Macro,它可以满足您的需求。
您需要以下参考资料:
将此代码添加到您的班级:
[DllImport("user32.dll")]
static extern bool SetForegroundWindow(IntPtr hWnd);
private static void OpenExcelWithoutRibbon() {
Application excelApp = new Application();
excelApp.Visible = true;
Process prc = Process.GetProcessesByName("EXCEL").First();
prc.WaitForInputIdle();
IntPtr h = prc.MainWindowHandle;
SetForegroundWindow(h);
System.Windows.Forms.SendKeys.SendWait("^{F1}");
}
在我的电脑上,Excel以进程名称" EXCEL"运行,也许它可以在其他PC上有所不同(例如" excel"或" Excel")。检查是否找不到。