줄리아에서 엑셀 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