powerquery加载pdf_PowerQuery技巧之不解压直接读取zip压缩包

BinaryFormat.ByteOrder(BinaryFormat.UnsignedInteger32, ByteOrder.LittleEndian),

each if _ <> 67324752

then BinaryFormat.Record([IsValid = false, Filename=null, Content=null])

else BinaryFormat.Choice(

BinaryFormat.Binary(26),

each BinaryFormat.Record([

IsValid  = true,

Filename = BinaryFormat.Text(Header(_)[FileNameLen]),

Extras   = BinaryFormat.Text(Header(_)[ExtrasLen]),

Content  = BinaryFormat.Transform(

BinaryFormat.Binary(Header(_)[BinarySize]),

(x) => try Binary.Buffer(Binary.Decompress(x, Compression.Deflate)) otherwise null

)

]),

type binary

)

),

ZipFormat = BinaryFormat.List(HeaderChoice, each _[IsValid] = true),

Entries = List.Transform(

List.RemoveLastN( ZipFormat(File.Contents(path)), 1),

(e) => [FileName = e[Filename], Content = e[Content] ]

)

in

Table.FromRecords(Entries)

效果如下图,测试文件中包含了

xls,xlsx,csv

三个文件,三种格式都可以支持,解析出来还是

binary

,然后再根据格式使用

Excel.Workbook

Csv.Document

解析成表即可:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值