我正在尝试执行将信息输出到文本文件中的 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/