logo

ジュリアでExcel XLSXファイルを読み込む方法 📂ジュリア

ジュリアでExcel XLSXファイルを読み込む方法

概要

ジュリアでエクセル統合ドキュメント拡張子である *.XLSX ファイルを読む方法について紹介する。CSVファイルを読むことよりはやや難しいが、データそのものを *.XLSX ファイルで取得せざるを得ず、そのファイルの数が多い状況では仕方なく使用するしかない1

コード

例えば example.xlsx ファイルが次のように alpha と beta シートを持つファイルだとしよう。特に、betaには note と呼ばれる離れたセルが一つ存在する。

2024-07-18.png 2024-07-18_(1).png

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