Excel pro Mac teď podporuje aktualizaci Power Query pro mnoho zdrojů dat a taky vytváření dotazů prostřednictvím VBA. Vytváření obsahu v editoru Power Query ještě není podporováno.
Aktualizace dotazů Power Query
Dotazy můžete aktualizovat z následujících zdrojů dat:
-
Localgroup. TXT,. CSV,. XLSX,. XML nebo. Soubory JSON
-
Tabulky a oblasti v aktuálním sešitu
-
SQL Server s ověřováním databáze
-
Soubory, složky a seznamy služby SharePoint *
-
Informační kanály OData *
Poznámka: * Aktualizace ze souborů, složek a seznamů a z informačních kanálů OData je momentálně v beta verzi a je dostupná jenom pro účastníky programu Office Insider.
Není nutný žádný speciální příkaz – stačí kliknout na Data > Aktualizovat všenebo použít jakoukoli jinou metodu aktualizace externích dat, kterou dáváte přednost.
Výzva k zadání přihlašovacích údajů
Když poprvé aktualizujete dotaz, můžete být požádáni o přihlášení. Zvolte metodu ověřování a zadejte přihlašovací údaje pro připojení ke zdroji dat a pokračujte v aktualizaci. Zobrazí se výzva k zadání přihlašovacích údajů závisí na zdroji dat.
Tady je třeba výzva k zadání přihlašovacích údajů k SQL serveru:
A tady je výzva služby SharePoint:
Vymazání přihlašovacích údajů
Pokud chcete vymazat stávající přihlašovací údaje, vyberte datová > připojení, zvolte požadované připojení a pak vyberte Vymazat oprávnění.
Vytváření dotazů Power Query pomocí jazyka VBA
V Excelu pro Mac ještě není vytváření v editoru Power Query zatím dostupné, jazyk VBA podporu vytváření Power Query nepodporuje. Tady je nějaký základní kód, který můžete přizpůsobit a použít.
Vytvoření dotazu a načtení dat
Tady je jednoduchá ukázka, která přidá dotaz, který vytvoří seznam s hodnotami od 1 do 100.
Sub CreateSampleList()
ActiveWorkbook.Queries.Add Name:="SampleList", Formula:= _
"let" & vbCr & vbLf & _
"Source = {1..100}," & vbCr & vbLf & _
"ConvertedToTable = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error)," & vbCr & vbLf & _
"RenamedColumns = Table.RenameColumns(ConvertedToTable,{{""Column1"", ""ListValues""}})" & vbCr & vbLf & _
"in" & vbCr & vbLf & _
"RenamedColumns"
ActiveWorkbook.Worksheets.Add
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
"OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=SampleList;Extended Properties=""""" _
, Destination:=Range("$A$1")).QueryTable
.CommandType = xlCmdSql
.CommandText = Array("SELECT * FROM [SampleList]")
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.ListObject.DisplayName = "SampleList"
.Refresh BackgroundQuery:=False
End With
End Sub