2013-09-28 5 views
0

아래 그림과 같이 샘플 데이터가있는 xlsx 시트가 있습니다.xrld python 패키지를 사용하여 .xlsx 시트를 파싱합니다.

fileinfo: sample file | DateCreated: 09/23/2013 | Country: Japan 

Num. | Name | Age | Sex | Country 

    1 | Mark | 45 | M | Australia 
    2 | Steve| 50 | M | United kingdom 
    3 | Julia| 35 | F | USA 

fileinfo: sample file | DateCreated: 09/23/2013 | Country: Japan 

Num. | Name | Age | Sex | Country 

    1 | Ronald | 64 | M | USA 
    2 | Micheal| 52 | M | China 
    3 | Zed | 35 | F | USA 

파일에는 파일의 어디에나 fileinfo 행이 있고 파일에는 몇 번이나 시간이 들어 있습니다. 내가 코드에서 캡처하지 않았는지 확인해야합니다.

xlrd에서 머리말과 데이터를 사전에 캡처 할 수있는 방법이 있습니까? 예를 들어 여기서는 파일 정보 행인 텍스트 데이터 만 남겨 둡니다.

여기에 지금까지 가지고있는 코드가 있습니다.

import xlrd 

def importXLSX(fileName): 
    with xlrd.open_workbook(fileName) as wb: 
     worksheet = wb.sheet_by_index(0) 

    total_rows = worksheet.nrows 

    num_rows, curr_row = worksheet.nrows, 0 

    keys = [x.value for x in worksheet.row(1)] 

    data = dict((x, []) for x in keys) 

    while curr_row < num_rows: 
     curr_row += 1 
     for i, val in enumerate(worksheet.row(curr_row+1)): 
      data[keys[i]].append(val) 
    return data 


data = importXLSX('simple.xlsx') 
print data 

답변

1

마침내 방법을 찾았습니다. 셀이 비어 있으면 XLRD는 0을 반환합니다. 그래서 나는 빈 열과 행을 비교할 수 있었고 어느 ​​행이 헤더 열인지 파악하고 목록에 추가 한 다음 마지막으로 반복하여 인쇄 할 수있었습니다.

관련 문제