你能从excel宏中运行一个.jl文件吗



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

提前感谢

JuliaInXL中有一个商业Julia Excel插件,但很可能已经失效。

您可以做的是从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()

最新更新