grafana导入json文件没有数据_Excel无法导入Txt文件?VBA来帮你,多样化数据源轻松汇总分析...

前景提要(文末提供源码下载)

txt文件在我们的日常工作中也是经常接触的一种文件类型,尤其是从一些网站中导出的数据,或者是准备导入网站的数据,有时候也会碰到一些txt类型的文件,txt因为使用方便,没有太多的格式要求,也会被使用在一些数据的登记上面,txt文件就是纯粹的一个记事本,不具备计算等功能,如果恰好我们要统计的数据在txt上面,那么我们要如何将txt的数据导入excel呢?

场景简介

将txt数据导入excel,excel本身并不具备这样的功能,当然如果你安装了office自带的一些插件诸如power query ,或者是更改版本的office,诸如2016的话,你可以直接使用power query的功能导入txt文件,但是可能很多的人并没有使用这么高级的版本,或者因为公司的电脑配置问题,没有办法安装插件,这里我们就可以尝试使用VBA自己写脚本实现导入txt的功能

假设当前我们桌面有这样一个txt文件

013fb9b331f4c1c6bcca62ba26bccc7d.png

里面都是一些虚构的数字,文字,也不算小,有112K,我们尝试将这些数据写入excel

77069fb20defc3505e96a58b0dca7e95.png

代码区

excel和txt之间的交互,听起来很高级,其实写起来就很简单了,简单的几句代码就可以解决了。

Sub test()Filename = "换成你的txt路径"Open Filename For Input As #1i = 1Do While Not EOF(1) Line Input #1, s Cells(i, 1) = s i = i + 1LoopClose #1End Sub

大致算起来,可能还不超过10句代码

很轻松的就写入了15147行数据

6ca079ea3a07ec03a31afd999cb3459f.png

代码分析

来看看代码,看看VBA是如何实现txt和excel之间的交互的

Filename = "换成你的txt路径"

这句就很简单了,指定txt的文件的位置,大家可以根据实际的情况转化成为自己的实际路径,也可以通过filedialog调用对话框来选择

Open Filename For Input As #1

标准用语,你想要写入数据,那你肯定要打开文件对不对,所以这句话的作用就是打开txt文件,For Input就是代表写入的意思,#1,代表标签序号,这个文件是1号文件

Do While Not EOF(1)

这很明显是一个循环,那么这个循环是什么意思呢?

关键点在EOF,这三个字母可以这样拆开来理解,end of file ,文件的末尾

哪个文件的末尾呢?后面括号里面有一个1,代表我们上面打开的1号文件

合起来意思就是只要还没有到达txt的末尾

Line Input #1, s

没有到达末尾的话呢?就执行上面这句话,将每一行的内容赋值给s这个变量

然后就可以将s的内容写入单元格中了

Cells(i, 1) = si = i + 1

这样就构成了一个简单的小循环

我们执行下代码,看看实际运行的轨迹

第一行

3731ee35075bd50f21f06bed4419b78a.png

第二行

c2db46ca400068b060a38e82ddd0246c.png

依次类推

怎么样,是不是很简答, 有没有感觉到VBA的强大~

=======================================================

本节课的案例源码已经上传,需要的小伙伴们后台私信“7-30-6”即可,希望大家多多支持~~

好了~明晚19:00,准时再见。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,你需要使用Python中的一些库来读取和处理JSON文件,并使用一些可视化库来绘制关系图。我建议使用以下库: - `json` 库用于读取JSON文件 - `networkx` 库用于创建和操作图形结构 - `matplotlib` 库用于绘制图形 下面是一个示例代码,它使用这些库从weibo.json文件中读取数据并绘制关系图: ```python import json import networkx as nx import matplotlib.pyplot as plt # 读取JSON文件 with open('weibo.json', 'r') as f: data = json.load(f) # 创建一个有向图 G = nx.DiGraph() # 添加节点 for user in data: G.add_node(user['name']) # 添加边 for user in data: for follower in user['followers']: G.add_edge(follower, user['name']) # 绘制图形 pos = nx.spring_layout(G) nx.draw_networkx_nodes(G, pos, node_size=100) nx.draw_networkx_edges(G, pos, alpha=0.5) nx.draw_networkx_labels(G, pos, font_size=8) plt.axis('off') plt.show() ``` 这段代码首先读取JSON文件,然后创建一个有向图。它遍历每个用户并添加节点,然后遍历每个用户的关注者并添加边。最后,它使用`spring_layout`算法布置节点并使用`draw_networkx`函数绘制图形。 在这个例子中,我们使用了`spring_layout`算法来布置节点。这个算法会使节点之间的距离尽可能相等,并且相互连接的节点之间的距离尽可能短。 通常,你可以使用一些其他的布局算法来更改节点的位置,例如`circular_layout`或`random_layout`。你也可以根据节点的一些属性来调整节点的大小和颜色,以便更好地展示节点之间的关系。 最后,你可以对所绘制的图进行分析,例如找出最有影响力的用户,或者找出哪些用户之间的互动最频繁。你可以使用`networkx`库提供的各种函数来进行这些分析,例如`degree_centrality`或`betweenness_centrality`。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值