版本:0.8.4
官方链接:Tutorial · XLSX.jl
函数 | 作用 |
---|---|
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.openxlsx以read-write的方式打开一个已存在的文件并进行编辑。
XLSX.openxlsx("my_file.xlsx", mode="rw") do xf
sheet = xf[1]
sheet["B1"] = "new data"
end