如何使用 Julia 创建具有多张工作表的 excel 文件?
Posted
技术标签:
【中文标题】如何使用 Julia 创建具有多张工作表的 excel 文件?【英文标题】:How to create an excel file with multiple sheets using Julia? 【发布时间】:2021-11-30 14:30:45 【问题描述】:我正在 Julia 中编程并尝试创建一个包含多个工作表的 excel 文件以保存一些数据。问题是函数 XLSX.openxlsx() 只能用一张纸创建 excel。 我正在尝试运行以下代码。
XLSX.openxlsx("test_file.xlsx", mode="w") do xf
sheet = xf[1]
XLSX.rename!("first")
sheet["A1"] = "A"
sheet = xf[2]
XLSX.rename!("second")
sheet["A1"] = "B"
sheet = xf[3]
XLSX.rename!("third")
sheet["A1"] = "C"
end
有谁知道如何创建包含多个工作表的 excel 文件?或者在现有文件中创建新工作表?
【问题讨论】:
【参考方案1】:XLSX.addsheet! 就是你要找的东西。
XLSX.openxlsx("test_file.xlsx", mode="w") do xf
XLSX.rename!(xf[1], "first")
for sheetname in ["second", "third", "fourth"]
XLSX.addsheet!(xf, sheetname)
end
xf[1]["A1"] = "A"
xf[2]["A1"] = "B"
xf[3]["A1"] = "C"
# ...
end
【讨论】:
【参考方案2】:writetable
接受多个工作表作为关键字参数。因此,我通常使用单行将所有数据框导出到 Excel 文件。我也绝对推荐创建一个DataFrame
,对其进行操作,最后保存到Excel,因为DataFrames
API 显然比XLSX
API 更方便进行数据操作。
请看下面的代码:
using DataFrames, XLSX
df1 = DataFrame(a=1:5, b=string.("Hello",1:5), c=6.5:10.5)
df2 = DataFrame(a=1:5, d=[11,22,33,missing,missing] )
XLSX.writetable("dfs.xlsx", overwrite=true,
WORKSHEET_A=(collect(DataFrames.eachcol(df1)), DataFrames.names(df1)),
WORKSHEET_B=(collect(DataFrames.eachcol(df2)), DataFrames.names(df2)),
#add more data frames when needed
)
【讨论】:
以上是关于如何使用 Julia 创建具有多张工作表的 excel 文件?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 C# 从 DataSet 创建包含多个工作表的 excel 文件
使用 Jupyter notebook 将具有多个工作表的 Excel 文件转换为多个 csv 文件