PowerBI .pbix DataMashup 压缩目录

PowerBI .pbix DataMashup Compressed Directory

我正在尝试使用 python 的 zipfile 库检查 PowerBI .pbix 文件。

解压缩 .pbix 存档时,我得到以下结构:

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

.pbix 存档中的 DataMashup 文件似乎是目录的某种非品牌存档。

DataMashup 对象似乎没有被压缩,因为在 python 解释器中打印对象时我可以轻松读取 xml 数据。

使用 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。

另一个线索可能是尝试在 DataMashup 文件上使用 unzip 时的输出:

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

我能够使用 7za:

解压缩 linux 上的 DataMashup 目录
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.

没有帮助

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

还有一个在这里,使用电源shell

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