【Power Query】获取腾讯文档数据2.0
之前讨论过power query获取腾讯文档数据,参考pbi社区,由于经常遇到问题(比如更改了格式或者加了公式)无法刷新,现更新下解决方案
1.0数据抓取
例如https://docs.qq.com/sheet/DYkNJRlp0cWRWZUlH?tab=ez6e97
id=DYkNJRlp0cWRWZUlH,tab=ez6e97
let
源 = (id as text,tab) => let
web=Json.Document(Web.Contents("https://docs.qq.com/dop-api/opendoc?tab="&Text.From(if tab=null then "BB08J2" else tab)&"&id="&Text.From(id)&"&outformat=1&normal=1"))[clientVars][collab_client_vars],
doc=Table.FromRows(List.Split(List.Transform({0..web[maxCol]*web[maxRow]-1},
(x)=>try Record.Field(List.Select(web[initialAttributedText][text]{0}, each (try Record.FieldCount(_{0}[c]{1}) otherwise 0 )> 0){0}{0}[c]{1},Text.From(x))[2]?{1}? otherwise null),web[maxCol]))
in doc
in
源
2.0数据抓取
已修复更改格式后无法刷新、支持添加公式的共享表格
(请勿频繁刷新或调用,否则可能被腾讯拦截ip)
// qqdoc2
(id as text,tab) => let
web=Json.Document(Web.Contents("https://docs.qq.com/dop-api/opendoc?tab="&Text.From(if tab=null then "BB08J2" else tab)&"&id="&Text.From(id)&"&outformat=1&normal=1"))[clientVars][collab_client_vars],
doc=Table.FromRows(List.Split(List.Transform({0..web[maxCol]*web[maxRow]-1},(x)=>try Record.Field(Record.Combine(List.Transform(List.Select(web[initialAttributedText][text]{0}, each (try Record.FieldCount(_{0}[c]{1}) otherwise 0)>0),each _{0}[c]{1})),Text.From(x))[2]?{1}? otherwise null),web[maxCol]))
in doc
参考文档
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
评论已关闭