我正在开发Excel 2013 VSTO项目。我需要执行现有的菜单项(例如File-> Export操作)。
我该怎么办?我尝试搜索示例,但未找到任何示例。
答案 0 :(得分:1)
这是工作表对象https://docs.microsoft.com/en-us/office/vba/api/excel.worksheet.exportasfixedformat的ExportAsFixedFormat方法的VBA页面。从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();
}
});
}