如何通过使用C#创建新的Excel应用程序来隐藏Excel功能区



我创建了一个新的Excel应用程序:

Microsoft.Office.Interop.Excel.Application application = new Excel.Application();

现在,我想完全隐藏此应用程序中的功能区(即,不允许Excel用户再次显示此功能区)。我该怎么做?

我找到了一个解决方案:

application.ExecuteExcel4Macro("SHOW.TOOLBAR("Ribbon",False)");

但我想找到一种更优雅的方式,而不是使用宏。这有可能吗?

试试这个:

If Application.ExecuteExcel4Macro("Get.ToolBar(7,""Ribbon"")") Then
    Application.ExecuteExcel4Macro "Show.ToolBar(""Ribbon"", False)"
Else
    Application.ExecuteExcel4Macro "Show.ToolBar(""Ribbon"", True)"
End If

来自另一个来源。不知道如何在没有宏的情况下做到这一点。

您可以尝试使用Microsoft Active Accessibility。

我的解决方案并不那么优雅,但它在没有Macro的情况下可以随心所欲。

您需要以下参考资料:

  • 使用Microsoft.Office.Interop.Excel
  • 使用System.Runtime.InteropServices
  • 使用System.Diagnostics
  • 使用System.Diagnostics

将此代码添加到您的类中:

    [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"运行,也许在其他电脑上(如"Excel"或"Excel")会有所不同。如果没有找到,请检查它。

相关内容

  • 没有找到相关文章

最新更新