Сжатый каталог PowerBI .pbix DataMashup

Я пытаюсь проверить PowerBI .pbix файл с использованием python zipfile библиотека.

При разархивировании .pbix архив, я получаю такую ​​структуру:

DataMashup
DataModel
DiagramLayout
Metadata
Report
ReporLayout
ReporStaticResources
ReporStaticResourceSharedResources
ReporStaticResourceSharedResourceBaseThemes
ReporStaticResourceSharedResourceBaseThemeCY18SU07.json
SecurityBindings
Settings
Version
[Content_Types].xml

Похоже, что DataMashup файл в .pbix archive - это своего рода небрендовый архив каталога.

В DataMashup объект не кажется сжатым, так как я могу легко прочитать xml data при печати объекта в интерпретаторе python.

С помощью 7zip Я могу получить доступ ко всему внутри:

DataMashup/
    Config/
        Package.xml
    Formulas/
        Section1.m # m and/or dax looking stuff
[Content_Types].xml

Как узнать формат DataMashup архив в архиве?

Одна из подсказок заключается в двоичных данных в верхней части DataMashup объект: \x00\x00\x00\x00\x07\x05\x00\x00PK что может указывать на pkzip.

Другой подсказкой может быть этот вывод при попытке использовать unzip на DataMashup файл:

$ unzip DataMashup
Archive:  DataMashup
warning [DataMashup]:  6215 extra bytes at beginning or within zipfile

Мне удалось распаковать DataMashup каталог в Linux с помощью 7za:

WARNINGS:
There are data after the end of archive

--
Path = DataMashup
Type = zip
WARNINGS:
There are data after the end of archive
Offset = 8
Physical Size = 1303
Tail Size = 5148

Everything is Ok

Archives with Warnings: 1

Warnings: 1
Files: 3
Size:       2040
Compressed: 6459

Несмотря на предупреждения, файлы выглядят нормально. К сожалению, в windows это не помогает.

1 ответ

pbix файлы заархивированы, поэтому их нужно распаковать. DataMashup следует спецификации MS-QDEFF.

Файл DataMashup в архиве также является архивом, он содержит Section1.m, в котором есть определения источника запроса.

  1. изменить файл section1.m
  2. переупаковка DataMashup
  3. переархивируйте и измените расширение обратно на xlsx

вот действительно хороший урок по C #

https://www.titanwolf.org/Network/q/8acb9f29-4b28-400b-b8df-cbe523edcb01/y

другой здесь, используя силовую оболочку

https://querypower.medium.com/extracting-power-queries-41fd73d3d6a2

Другие вопросы по тегам