BI-TV #23 Редактирование запросов Power Query в XLSX и PBIX при помощи Powershell cmdlet DataMashup

Описание к видео BI-TV #23 Редактирование запросов Power Query в XLSX и PBIX при помощи Powershell cmdlet DataMashup

Команды удобно копировать из блога:
https://bi-tv.ru/video/23_updating_M_...

Редактирование кода скриптов Power Query в VS Code - решение Ben Gribaudo: https://bengribaudo.com/blog/2020/07/...

Устанавливаем VS Code https://code.visualstudio.com/Download. При установке ставим галку “Add to Path”.

В VS Code устанавливаем расширение “Power Query / M Language” (ctrl+shift+P - установить расширение - вводим название).

Устанавливаем PowerShell Core 7 c github: https://github.com/powershell/powersh....

Устанавливаем Data Mashup Cmdlet, для этого вводим PowerShell Core 7 команду:

Install-Module -Name DataMashup -AllowPrerelease
Если выдает ошибку - чтобы заработала возможность установки скриптов из галереи используем команду.

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Решение найдено здесь.

В скрипте функции заменяем code на путь до VS Code на вашем компьютере:

function Edit-DataMashup {
param (
[Parameter(Mandatory=$True, Position=0)]
[string]$File
)

$originalMashup = Export-DataMashup -Raw $File -ErrorAction Stop

$tempFile = New-TemporaryFile -ErrorAction Stop

try {
$tempFile = Rename-Item $tempFile ($tempFile.Name + ".m") -PassThru -ErrorAction Stop

$originalMashup | Out-File $tempFile -NoNewline -ErrorAction Stop
Start-Process "code" "`"$($tempFile)`"" -Wait
$postEditMashup = Get-Content $tempFile -Raw -ErrorAction Stop

if ($originalMashup -eq $postEditMashup) {
$successful = $true
return
}

Import-DataMashup -Raw $File -Experimental -Mashup $postEditMashup -ErrorAction Stop
$successful = $true
}
finally {
if ($successful -ne $true) {
Write-Error "Failed to Save Modified Power Query mashup:`r`n$($postEditMashup)"
}

Remove-Item $tempFile
}
}
Создаем файл Profile, чтобы положить в него функцию, чтобы после перезапуска Power Shell она была доступна

if (!(Test-Path -Path $PROFILE)) {
New-Item -ItemType File -Path $PROFILE -Force
}
Открываем файл Profile командой ниже, вставляем в notepad функцию из шага 6, сохраняем файл.

notepad $PROFILE

Перезапускаем PowerShell 7

Редактируем код Power Query XLSX и PBI файлов в VS Code командой:

Edit-DataMashup SomeFile.xlsx

Комментарии

Информация по комментариям в разработке