C#:Microsoft.Interop.Excel刷新全部不起作用

时间:2016-05-13 20:34:59

标签: c# excel vba excel-vba

每当我打电话时,我都会遇到一个非常令人沮丧的问题 来自RefreshAll()的{​​{1}}当我在excel中打开工作簿时它不刷新数据我必须手动点击excel中的全部刷新按钮...我甚至尝试通过vba调用刷新全部仍然不刷新数据...我总是提示:

  

“数据透视表报表已保存,没有基础数据。请使用   刷新数据命令以更新报告。“

尽管我已经调用了“全部刷新命令”。

Microsoft.Interop.Excel

并且在vba中尝试在调用refresh之前添加以下内容:

public void applyMacro(string excelFile)
{
    var excelApplication = new Microsoft.Office.Interop.Excel.Application { Visible = false };
    var targetExcelFile = excelApplication.Workbooks.Open(excelFile);
    try
    {
        string[] macros = addMacros(ref targetExcelFile);
        for (int i = 0; i < 2; i++)
            excelApplication.Run(macros[i]);
        targetExcelFile.RefreshAll();
        targetExcelFile.Save();
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex);
        Console.ReadKey();
    }
    finally
    {
        excelApplication.Quit();
    }
}

任何想法??

1 个答案:

答案 0 :(得分:0)

您可以在数据透视表上使用此功能:

YourPivotTable.PivotCache().RefreshOnFileOpen = true;
YourPivotTable.SaveData = true;