excel - 你能从 excel 宏运行 .jl 文件吗

标签 excel vba julia

我正在尝试执行将信息输出到文本文件中的 Julia 代码。我需要给不了解 Julia 的用户提供准确的答案。我可以构建一个在我的计算机上运行该 .Jl 的 excel 宏吗?

提前致谢

最佳答案

有一个商业 Julia Excel 插件 JuliaInXL,但它很可能已经死了。

您可以做的是从 Julia 中以编程方式操作 Excel。

XLSX.jl

编写电子表格

using XLSX
using Dates
XLSX.openxlsx("smyample.xlsx", mode="w") do xf
    sheet = xf[1]
    XLSX.rename!(sheet, "NewSheetName")
    sheet["A1"] = "Data generated on:"
    sheet["B1"] =  Dates.now()
    dat = rand(4, 5)
    for i in 1:size(dat,1), j in 1:size(dat,2)
        XLSX.setdata!(sheet, XLSX.CellRef(2+i, j), dat[i,j])
    end
end

读取电子表格:

julia> wb = XLSX.readxlsx("mysample.xlsx")
XLSXFile("sample2.xlsx") containing 1 Worksheet
            sheetname size          range
-------------------------------------------------
         NewSheetName 6x5           A1:E6

让我们得到前两列:

julia> XLSX.getcellrange(ws, ws.dimension)[:,1:2]
6×2 Array{XLSX.AbstractCell,2}:
 Cell(A1, "s", "", "0", "")                   Cell(B1, "", "1", "43995.77937614583", "")
 EmptyCell(A2)                                EmptyCell(B2)
 Cell(A3, "", "", "0.7723129181734945", "")   Cell(B3, "", "", "0.9539233196840988", "")
...

Cell 对象有一个字段value,因此您可以进一步处理它。

您也可以简单地请求任何单元格:

julia> ws["A1"], ws["B1"]
("Data generated on:", DateTime("2020-06-13T18:42:18"))

ActiveX 自动化 - 这将启用从 Julia 调用 Excel 宏

通过这种方式,可以对正在运行的 Excel 电子表格执行任何操作 - 您只是在自动化 MS Excel。

using Conda
Conda.add("pywin32")

using PyCall
pw = pyimport("win32com")
pwc = pyimport("win32com.client")
import win32com.client

xlApp = pwc.Dispatch("Excel.Application")
xlApp.Visible=1
workBook = xlApp.Workbooks.Open("C:\\temp\\MyTest.xlsx")
workBook.ActiveSheet.Cells(1, 1).Value = "hello world"
workBook.Close(SaveChanges=1) 
xlApp.Quit()

关于excel - 你能从 excel 宏运行 .jl 文件吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65080979/

相关文章:

excel - 将多个 csv 文件合并到一个 xls 工作簿 Python 3

vba - 如何使用 Google Translate API 翻译 Microsoft Excel 中的文本

vba - 我可以在不启用 .NET Framework 3.5 的情况下在 VBA 中使用 ArrayList 吗?

vba - 无法在 vba 中打开记录集

julia - 为什么 2 ^ 3 ^ 4 = 0 在 Julia 中?

vba - 使用VBA删除包含特定单词的行

vba - 是否有类似字典的对象允许我将数组存储为键?

vba - 从一个工作表复制数据并粘贴到另一工作表中的相关行

julia - 确定特定软件包的版本

dataframe - Julia 优化