簡體   English   中英

在Excel中刷新電源查詢

[英]Refresh power Query in Excel

我有一個Excel應用程序,可以使用Power查詢從SharePoint獲取合並列表。 我已將屬性設置為在打開excel應用程序時刷新,以刷新數據集。 當我手動打開excel時,它會刷新並獲取更新的數據。 但是,我在Winform應用程序中使用此excel來獲取數據。 因此,為了刷新數據,我試圖從代碼中打開和關閉Excel。

但是數據不會被刷新,並且會破壞電源查詢插件。 當我再次手動打開excel工作表時,運行代碼后出現錯誤“查詢未運行,或者無法打開數據庫表”。

功能區上不再顯示Power Query。 下面是我用來打開和關閉Excel應用程序的代碼:

 Excel.Application excelApp = new Excel.Application();
        excelApp.Visible = true;
        string workbookPath = @"C:\Test\Test.xlsx";
        Excel.Workbook excelWorkbook = excelApp.Workbooks.Open(workbookPath,
                0, false, 5, "", "", false, Excel.XlPlatform.xlWindows, "",
                true, false, 0, true, false, false);
        Excel.Sheets excelSheets = excelWorkbook.Worksheets;
        string currentSheet = "Sheet1";
        Excel.Worksheet excelWorksheet = (Excel.Worksheet)excelSheets.get_Item(currentSheet);
        Excel.Range excelCell = (Excel.Range)excelWorksheet.get_Range("A1", "A2");
        excelWorkbook.Close(true, "Test.xlxs", null); 

這是刷新數據的最佳方法嗎?

如果您的Power Query / BI實現不允許使用以前的海報所建議的數據管理網關(DMG),則您可能需要探索一個名為Power Update的新軟件,以將更新設置為計划。

另外,如果這是要求的一部分,則可以從C#應用程序中運行其Excel數據源更新任務。

有兩件事要注意。

  1. excel中的連接默認為后台(異步)刷新,這會使您的程序化刷新代碼不確定。
  2. Power Query會輪詢以更新查詢刷新的狀態。 因此,如果您在刷新后立即關閉工作簿,則狀態將沒有機會更新,而下次您打開工作簿時,狀態將指示錯誤。

為了獲得可靠的刷新,您將需要將連接設置為不再后台刷新 ,因此刷新將被阻止,然后在刷新后也睡眠一小段時間,以使Power Query的輪詢發現刷新已完成。

我將您的腳本更改為此

Excel.Application excelApp = new Excel.Application();
    excelApp.Visible = true;
    string workbookPath = @"C:\Test\Test.xlsx";
    Excel.Workbook excelWorkbook = excelApp.Workbooks.Open(workbookPath,
            0, false, 5, "", "", false, Excel.XlPlatform.xlWindows, "",
            true, false, 0, true, false, false);
    excelWorkbook.RefreshAll();
    System.Threading.Thread.Sleep(2000);
    excelWorkbook.Close(true, "Test.xlxs", null); 

您可以通過遍歷查詢並將其設置為不進行后台刷新來使此代碼更好,例如,此vba代碼會執行https://social.technet.microsoft.com/Forums/zh-CN/9cbdd731-d139-49ee-8f30- 89de371ba74d /多個查詢在另一個后面運行?forum = powerquery#df2947a7-585a-4f75-8337-e0ead5068254

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM