ジュリアでExcel XLSXファイルを読み込む方法
概要
ジュリアでエクセル統合ドキュメント拡張子である *.XLSX
ファイルを読む方法について紹介する。CSVファイルを読むことよりはやや難しいが、データそのものを *.XLSX
ファイルで取得せざるを得ず、そのファイルの数が多い状況では仕方なく使用するしかない1。
コード
例えば example.xlsx
ファイルが次のように alpha と beta シートを持つファイルだとしよう。特に、betaには note と呼ばれる離れたセルが一つ存在する。
XLSX.readxlsx
julia> xf = XLSX.readxlsx("example.xlsx")
XLSXFile("example.xlsx") containing 2 Worksheets
sheetname size range
-------------------------------------------------
alpha 7x2 A1:B7
beta 4x4 A1:D4
XLSX.readxlsx
関数はファイルを XLSX.XLSXFile
タイプとして読み取る。XLSXFile
は文字列 String
を行列 Matrix{Any}
タイプにマッピングするディクショナリのような役割を果たす。
XLSX.sheetnames
julia> XLSX.sheetnames(xf)
2-element Vector{String}:
"alpha"
"beta"
XLSX.sheetnames
関数はファイルのキーkeyと見なせるシート名の配列をリターンする。
シートとセルにアクセスする方法
julia> sh = xf[XLSX.sheetnames(xf)[1]]
7×2 XLSX.Worksheet: ["alpha"](A1:B7)
julia> sh[:]
7×2 Matrix{Any}:
"t" "x"
0 10
1 15
2 19
3 22
4 24
5 25
julia> sh = xf[XLSX.sheetnames(xf)[2]]
4×4 XLSX.Worksheet: ["beta"](A1:D4)
julia> sh[:]
4×4 Matrix{Any}:
"name" "vol" missing missing
"alice" 1.2 missing "note"
"bob" 1.7 missing missing
"eve" 1 missing missing
シートには XLSX.XLSXFile
に文字列で、セルには XLSX.Worksheet
にインデックスそのものでアクセスする。特に beta シートは元ファイルでの空白部分が missing
で埋められていることが確認できる。
全体コード
using XLSX
xf = XLSX.readxlsx("example.xlsx")
XLSX.sheetnames(xf)
sh = xf[XLSX.sheetnames(xf)[1]]
sh[:]
sh = xf[XLSX.sheetnames(xf)[2]]
sh[:]
環境
- OS: Windows
- julia: v1.10.0
- XLSX v0.10.1