#networking #distributed #kerberos #export

netidx-excel

使用RTD将实时Netidx数据拉入Excel

5个版本

0.1.5 2023年5月29日
0.1.3 2023年2月20日
0.1.2 2022年7月18日
0.1.1 2021年12月17日
0.1.0 2021年12月11日

#1681 in 网络编程

每月下载 22次

MIT 许可证

54KB
1.5K SLoC

这是一个Excel COM插件,允许使用=RTD()公式从Netidx中拉取实时数据。

假设你发布了一些数据,可能来自shell发布者,你想要向你的老板展示,但“那个命令行东西”或“那个linux东西”不是你的老板会做的事情。

> netidx publisher --bind 192.168.0.0/24 --spn publish/[email protected]
/test/foo|array|[42, -42]
/test/bar|i32|42
/test/baz|i32|-42

如果你在老板的机器上安装了这个插件,那么他可以将这些数据拉入Excel工作表中的一个单元格,你就可以停止担心如何向这些“头发尖尖的人”展示结果,完成你的工作。

Example

关键点是,如果netidx中的某个值更新,Excel将几乎立即更新,你的老板的交叉表也将更新。csv导出离死亡更近一步了!

语法

=RTD("netidxrtd",, PATH)

PATH当然可以是一个引用,或另一个公式,这是Excel,你的老板知道Excel... 对吧?

性能

即使你订阅了很多数据,或者你订阅了更新很快的数据,Excel也应该保持响应,因为RTD是限流的,所有的netidx处理都在后台线程池中完成。例如,这里Excel通过订阅压力发布者将我的wifi网络用到了极致,但它仍然完全响应。它实际上每秒正在拉取200万次更新,这是由网络限制的,而不是CPU。

Performance

构建

这里有一些预先构建的二进制文件在这里

但是如果你想自己构建它,你需要一台Windows机器(显然),可能是Windows 10或更高版本,但Windows 8也可能行。你需要安装rust,最简单的方法是使用rustup。你需要安装git。一旦安装了这两样东西,

> git clone https://github.com/estokes/netidx-excel
> cd netidx-excel
> cargo build --release

dll应该构建在target/release/netidx_excel.dll

安装

安装时,您需要决定dll文件要存放在哪里,这实际上并不重要,但我把我的dll放在了C:\Program Files\netidx-excel。然后您需要以管理员身份运行regsvr32来注册dll作为合适的COM服务器。所以,在管理员PowerShell中,

> mkdir 'C:\Program Files\netidx-excel'
> cp target\release\netidx_excel.dll 'C:\Program Files\netidx-excel'
> regsvr32 'C:\Program Files\netidx-excel\netidx_excel.dll'

最常见的错误是regsvr32不在您的路径中,或者您的shell没有以管理员权限运行。

您可能还需要打开dll的属性,并“解除阻止”它(如果您下载的是二进制文件而不是自己构建)。

64位Windows上的32位Office

如果您正在运行32位版本的Office,可能是因为您的内存有限,那么您还需要安装netidx_excel32.dll,并且您需要像上面一样运行regsvr32。如果您是从源代码构建的,您需要安装目标i686-pc-windows-msvc,并使用该目标构建32位dll,例如cargo build --target i686-pc-windows-msvc --release,然后dll将位于target/i686-pc-windows-msvc/release而不是target/release

限制

  • 无写支持;除了时间之外,没有真正的理由,这完全可能
  • 无发布支持;同样,没有真正的理由,完全可能,但比写操作需要更多的时间
  • 无解析器列表支持;再次,时间是问题,但在这方面没有真正的问题
  • 如果人们关心,我可以移除安装时需要管理员权限的要求,但那时您就需要为机器上的每个用户运行regsvr32

其他

我在Windows上编程了一个月,以确保您永远不会。因为相信我,您永远不会想这么做。但如果您对这个月我梦见了什么感兴趣,请在睡前阅读这篇文章Inside COM+。真的,不要这么做。COM在历史上有某个时刻似乎是个不错的想法,对吧?开发者!开发者!开发者!...开发者!我的意思是,GObject现在看起来真是太棒了,真的。

依赖项

~181MB
~3M SLoC