gpt4 book ai didi

excel - 从 Excel/VBA 调用 Scala 函数

转载 作者:行者123 更新时间:2023-12-02 01:27:58 25 4
gpt4 key购买 nike

我知道使用 C++ 可以创建包含某些函数的 DLL 文件,然后可以将其导入 Excel(例如通过 VBA)。让我们看下面的 C++ 函数

double __stdcall square_it(double &x)
{
return x*x;
}

我们假设它已合并到 square.dll 中,以便我们可以使用以下 VBA 导入

Declare PtrSafe Function square_it Lib "square.dll" (ByRef x As Double) As Double
Private Sub TestSub()
MsgBox square_it(4.5)
End Sub

所以我的问题是:是否可以在 Scala 中编写一个函数,然后以类似的方式从 VBA 调用它?

最佳答案

Scala 在这里与 Java 没有什么不同,看看 Java 问题,例如 Can you use Java libraries in a VB.net program?Calling Java library (JAR) from VBA/VBScript/Visual Basic Classic ,没有好的解决方案可以在 VBA/Java 或 VBA/Scala 中获得与 VBA/C++ 相同级别的集成。

您始终可以使用任何外部 channel 在 VBA 和 Scala 之间进行通信,例如 shell、文件系统,甚至 http,但这不会像 VBA/C++ 示例那样简单和高效。

这是通过 shell 进行通信的样子:

在 example.scala 中:

object Example {
def main(args: Array[String]): Unit = {
val d = args.head.toDouble
println(d * d)
}
}

在 example.vba 中:

Module Example
Sub Main()
Dim command As String
command = "scala /path/to/example.scala 123"
Range("A1").Value = CreateObject("WScript.Shell").Exec(command).StdOut.ReadAll
End Sub
End Module

关于excel - 从 Excel/VBA 调用 Scala 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32572041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com