줄리아에서 엑셀 XLSX 파일 읽는 법
개요
줄리아에서 엑셀 통합 문서 확장자인 *.XLSX 파일을 읽는 방법에 대해 소개한다. CSV 파일을 읽는 것보다는 다소 까다롭지만 데이터 자체를 *.XLSX 파일로 얻을 수밖에 없고 그 파일의 수가 많은 상황에서는 별 수 없이 사용해야 한다1.
코드
예를 들어 example.xlsx 파일이 다음과 같이 alpha, beta 시트를 가진 파일이라고 하자. 특히 beta에는 note라고 하는 동떨어진 셀이 하나 있다.
.png#center)
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

저희들의 저서 「줄리아 프로그래밍」이 2024 세종도서 학술부문에 선정되었습니다!

