如何通过 VSTO 加载项运行 Excel 的菜单项



我正在开发一个 Excel 2013 VSTO 项目。我需要执行现有的菜单项(例如,文件>导出操作)。

我该怎么做?我试图搜索示例,但没有找到任何示例。

这是工作表对象的 ExportAsFixedFormat 方法的 VBA 页:https://learn.microsoft.com/en-us/office/vba/api/excel.worksheet.exportasfixedformat 。可以从 Excel 对象模型调用各种功能,并且该页面包含比互操作页面更多的信息。

可以通过 VSTO 调用 Excel 对象模型,通常如下所示:

//inside a function call from your VSTO project
Excel.Worksheet ws = Globals.ThisAddIn.Application.ActiveWorkbook.Worksheets[1];
string exportMessage = await SaveASPDFAsync(ws, @"C:Test.test.pdf", false);
//more code - if empty string, it was a good export

方法可能如下所示:

private async Task<string> SaveASPDFAsync(Microsoft.Office.Interop.Excel.Worksheet ws, string filepath, bool openAfterPublish)
    {
        return await Task.Run(() =>
        {
            bool originalDisplayAlerts = ws.Application.DisplayAlerts;
            try {
                ws.Application.DisplayAlerts = false;
                ws.ExportAsFixedFormat(Type: Excel.XlFixedFormatType.xlTypePDF, Filename: filepath, OpenAfterPublish: openAfterPublish);
                ws.Application.DisplayAlerts = originalDisplayAlerts;
                return "";
            }
            catch (Exception ex)
            {
                return ex.ToString();
            }
        });
    }

最新更新