[컴][파이썬] python 에서 xlsx 읽기




xlrd

ref. 2 에서  openpyxl 과 The xlrd Module를 이야기한다. 속도면에서 python Excel(xlrd) 가 낫다고 해서 그것을 사용하기로 했다.


ref 1 에 xlrd 의 사용법이 나와있다.


install

pip install xlrd


workbook, worksheet

workbook 안에 여러개의 worksheet 가 존재한다. 즉, workbook 은 xlsx 파일이라고 생각하면 되고, worksheet 은 xlsx 파일 안에 들어있는 sheet 한개라고 생각하면 된다.

sheetName = 'Sheet2'
# default encoding is 'ASCII'
workbook = xlrd.open_workbook('my_file_name.xls', 
                                on_demand=True, # on_demand 는 파일이 아주 클때 사용
                                encoding_override='cp949')
                                
worksheet = workbook.sheet_by_name(sheetName)



cell 읽기

if worksheet.cell(0, 0).value == xlrd.empty_cell.value:
    # Do something

cell 의 값은 cell(row, column) 으로 읽을 수 있다. cell 의 값이 비어있는 것(empty )에 대한 처리는 위의 code 처럼 하면 된다.

자세한 API 내용은 문서를 참고하자.


성능

debugger 로 열때 성능이 나오지 않는다. visual studio code 의 debugger 로 실행을 하는경우 꽤 오래걸린다. 1.2MB 정도의 xlsx 를 open 하는 경우에 몇분정도 소요된다. (cpu : intel i3-2100 @ 3.1GHz), 다른 debugger 로 실행하면 괜찮을 수 있을지 모르겠다.
debugger 를 통하지 않고, 직접 실행한다면 괜찮다.

하지만 66MB 정도의 xlsx 는 직접실행해도 너무 오래 걸려서 중간에 멈췄다.





Reference

  1. Using Python to Parse Spreadsheet Data
  2. xls - Reading xlsx files using Python - Stack Overflow
  3. The xlrd Module



댓글 없음:

댓글 쓰기