logo

줄리아에서 엑셀 XLSX 파일 읽는 법 📂줄리아

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