Julia通过XLSX.jl包读写Excel文件

版本:0.8.4

官方链接:Tutorial · XLSX.jl

API速查表
函数作用
XLSX.XLSXFile

XLSXFile 表示对 Excel 文件的引用

XLSX.readxlsx将整个 Excel 文件读入内存并返回一个 XLSXFile
XLSX.openxlsx打开 XLSX 文件进行读取或写入
XLSX.writexlsx将 XLSXFile 写入指定路径中
XLSX.sheetnames返回一个该 XLSXFile 对象的表单名数组
XLSX.sheetcount返回一个该 XLSXFile 对象的表单数目
XLSX.Worksheet表示对一个Excel 文件的表单的引用
XLSX.readdata返回 Excel 文件的数据
XLSX.getdata返回 Excel 文件的数据
XLSX.getcell返回 Excel 文件某个单元格的数据
XLSX.getcellrange返回一个矩阵数据
XLSX.row_number返回单元格的行号
XLSX.column_number返回单元格的列号
XLSX.eachrow为工作表创建一个行迭代器
XLSX.readtable以 XLSX.DataTable 的结构形式返回表格数据
XLSX.gettable以 XLSX.DataTable 的结构形式返回表格数据
XLSX.eachtablerow构建一个表格的行迭代器。迭代器的每个元素都是TableRow类型的。
XLSX.writetable将工作表写入指定文件
XLSX.writetable!将工作表写入指定文件
XLSX.rename!重命名工作表
XLSX.addsheet!创建一个工作表,可指定name

Excel的基本构成

  • 工作簿:一个Excel文档即为一个工作簿。
  • 工作表:工作簿中的每个表。
  • 单元格:单元格由行和列组成,命名时由行和列说明,称为单元格名称或地址。

一个工作簿中有若干个工作表,每个工作表由许多单元格组成。

一、读取文件

1.1 基本函数

readxlsx

用法:xf = XLSX.readxlsx("myfile.xlsx") 

功能:读取指定excel文件并返回一个excel文件对象

sheetnames

用法:sheetnames = XLSX.sheetnames(xf) 

功能:返回一个包含所有工作表名的一维数组 

获取指定工作表
sheet = xf["mysheet"]   

1.2 数据访问

访问指定单元格

方法一:value = sheet["B2"]

方法二:value = sheet[2, 2]

访问某个区域

arr = sheet["A2:B4"]

访问所有数据

println(sh[:])

1.3 完整示例

using XLSX

# 返回excel文件对象
xf = XLSX.readxlsx("myfile.xlsx") 

# 返回一个包含所有工作表名的一维数组
sheetnames = XLSX.sheetnames(xf)  

# 返回工作簿的指定工作表
sh = xf["mysheet"]  

# 访问单元格
value = sh[2, 2]
value = sh["B2"]

# 访问指定区域
arr = sh["A2:B4"]


# 访问所有数据
println(sh[:])


# 获取表单行列数
size(sh[:])

二、写入文件

1. 创建新文件

如果该文件存在将会覆盖旧文件内容。

XLSX.openxlsx("my_new_file.xlsx", mode="w") do xf
    sheet = xf[1]
    XLSX.rename!(sheet, "new_sheet")  # 重命名sheet

    # 在指定单元格输入数据
    sheet["A1"] = "this"
    sheet["A2"] = "is a"
    sheet["A3"] = "new file"
    sheet["A4"] = 100
    sheet[1,4] = 200

    # 添加一行数据到 "A5" to "E5"
    sheet["A5"] = collect(1:5) # 等价于 `sheet["A5", dim=2] = collect(1:4)`

    # 添加一列数到 "B1" to "B4"
    sheet["B1", dim=1] = collect(1:4)

    # 添加矩阵到 "A7" to "C9"
    sheet["A7:C9"] = [ 1 2 3 ; 4 5 6 ; 7 8 9 ]
    
    # 添加多个数据
    sheet[20,:] = 1:10
    sheet[21,:] = range(1:10)
    sheet[21,:] = [1,24.2,"test"]


    # 添加新的表单
    sheet = XLSX.addsheet!(xf, "新的表单")
end

2. 编辑已存在的文件

使用XLSX.openxlsxread-write的方式打开一个已存在的文件并进行编辑。

XLSX.openxlsx("my_file.xlsx", mode="rw") do xf
    sheet = xf[1]
    sheet["B1"] = "new data"
end
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值