ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 4158|回复: 3

[分享] power query将excel表格生成json格式数据

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-8-11 10:22 | 显示全部楼层 |阅读模式
本帖最后由 fxl447098457 于 2018-8-11 11:50 编辑

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

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2018-8-11 11:08 | 显示全部楼层
pandas 先read_excel,然后to_json,好了。

TA的精华主题

TA的得分主题

发表于 2018-12-13 20:49 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2023-10-22 18:46 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-26 15:18 , Processed in 0.042693 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表