|
本帖最后由 fxl447098457 于 2018-8-11 11:50 编辑
今天讲解一下如何利用power query 将excel 表格数据转化为json格式的数据。由于我先在csdn的博客上写好文章的,所以图片带了我的博客地址水印.忽略就好。
1、先将数据放进power query编辑器下:
2.利用Json.FromValue()将表转化为json格式字符串。不要忘了Json.FromValue()返回的是二进制。需要利用Text.FromBinary()返回字符串结果。
结果我们就看到如上图的结果了。默认返回Unicode编码字符。代码如下:
- let
- //读取表格数据到power query
- 源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content],
- //Json.FromValue将table转化为json,文本输出。
- res=Text.FromBinary(Json.FromValue(源))
- in
- res
复制代码 现在我想生成汉字该怎么办呢。利用js的escape函数对unicode编码进行解码。下面是构建一个自定义函数:
- fx=(s as text)=>Web.Page("<script>var str='" & Text.Replace(s,"\u","%u")
- & "';res=unescape(str);document.write(res);</script>")[Data]{0}[Children]{0}[Children]{1}[Text]{0}
复制代码 那么我们再回到原来的例子上,看完整的代码:
- let
- //读取表格数据到power query
- 源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content],
- //Json.FromValue将table转化为json,文本输出。
- res=Text.FromBinary(Json.FromValue(源)),
- fx=(s as text)=>Web.Page("<script>var str='" & Text.Replace(s,"\u","%u")
- //自定义解码函数
- & "';res=unescape(str);document.write(res);</script>")[Data]{0}[Children]{0}[Children]{1}[Text]{0},
- //将Unicode编码字符转化为汉字
- hz=fx(res)
- in
- hz
复制代码 得到的结果如下图所示:
好了,that's all
----------------------ending-----------------------------
|
评分
-
2
查看全部评分
-
|