Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Julia Excel对象_Excel_Object_Julia - Fatal编程技术网

Julia Excel对象

Julia Excel对象,excel,object,julia,Excel,Object,Julia,在MATLAB中,通过使用actxserver命令创建excel对象,然后使用类似vba的命令,可以写入excel并格式化excel表格: JULIA是否提供类似的功能?有两种选择: 使用Julia本机库(XLSX.jl)Julia是否有vba类型的命令?请注意,这只回答了op提出的问题的一部分。我添加了ActiveX示例,但我知道目标是读取和写入Excel文件。通过ActiveX执行此操作在生产中使用时有许多注意事项。。。不管怎么说,我的例子列表上都有。谢谢你的及时回复!因此,有几种读取/写入

MATLAB中,通过使用actxserver命令创建excel对象,然后使用类似vba的命令,可以写入excel并格式化excel表格:

JULIA是否提供类似的功能?

有两种选择:


  • 使用Julia本机库(
    XLSX.jl
    )Julia是否有vba类型的命令?请注意,这只回答了op提出的问题的一部分。我添加了ActiveX示例,但我知道目标是读取和写入Excel文件。通过ActiveX执行此操作在生产中使用时有许多注意事项。。。不管怎么说,我的例子列表上都有。谢谢你的及时回复!因此,有几种读取/写入数据的方法。但是,格式化excel表格的唯一方法(例如,增加单元格的字体大小、更改单元格区域的颜色等)是通过ActiveX使用Conda。你能证实吗?绝对不能!几乎我能想象到的唯一一种情况是,有人会不顾一切地使用ActiveX,那就是运行VBA宏。否则不要碰它
    XLSX.jl
    有几个
    XLSX.styles*
    方法,下面是openpyxl的styles文档,非常好了解,感谢进一步的澄清!
    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(A4, "", "", "0.15112461473849814", "")  Cell(B4, "", "", "0.9088105399888486", "")
     Cell(A5, "", "", "0.38606711950516326", "")  Cell(B5, "", "", "0.274487313772527", "")
     Cell(A6, "", "", "0.4390332370925689", "")   Cell(B6, "", "", "0.04038483579623442", "")
    
    julia> ws["A1"], ws["B1"]
    ("Data generated on:", DateTime("2020-06-13T18:42:18"))
    
    using XLSX
    using DataFrames
    df1 = DataFrame(a=1:3, b=6:8);
    df2 = DataFrame(x1=1:3, x2=string.('A':'C'));
    
    
    XLSX.writetable("myexcel.xlsx",
        MySheetName1=(collect(eachcol(df1)), names(df2)),
        MySheetName2=(collect(eachcol(df2)), names(df2)))
    
    using Conda
    Conda.add("openpyxl")
    
    using PyCall
    xl = pyimport("openpyxl")
    
    wb = xl.Workbook();
    ws = wb.active
    
    ws["A1"] = "hello world"
    
    wb.save("yetanother.xlsx")
    
    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()