문제

openpyxl을 사용하여 Excel 파일을 읽는 Python 스크립트가 있습니다.openpyxl이 올바르게 설치되지 않았 음을 발견 할 때까지 이것은 괜찮습니다. 이는 내 IDE 외부의 스크립트를 실행하는 데 오류를 알려 줬습니다.그러나이 문제를 해결 한 후 스크립트는 실제 값 대신에 내가 어디에서 왔는지 이해하지 못하는 숫자 값을 반환합니다.

스크립트 :

wb=load_workbook(r'C:\test.xlsx', use_iterators = True)
ws=wb.get_sheet_by_name('Sheet1')

#Iterate trough all rows
for row in ws.iter_rows(row_offset=1):
    for cell in row:
        #If the column == A, check if there's a website value
        if cell.column == 'A':
            try:
                print cell.internal_value
                self.match = re.match(regex, cell.internal_value)
                if self.match:
                    self.match = 'OK'
            except:
                pass
.

시도 블록의 인쇄가 추가되어 프로그램이 반환 된 것을 확인합니다. 이는 처음 5 개의 레코드에 대해 다음과 같습니다.

0
1
31
49
143
.

다음이 있어야합니다 :

None
Website
www.coolblue.nl
www.bol.com
www.elektrosky.nl
.

스크립트가 실제 값 대신이 숫자 값을 반환하는 이유는 무엇입니까?

편집 : 처음 6 열의 내 XML 파일의 행 (첫 번째 행은 비어 있음)

Website           |     Sender    |     Price  |    Mark(s)       |     Payment methods
www.coolblue.nl         PostNL          Free      Thuiswinkel           Ideal, Visa, Mastercard
www.bol.com             PostNL          Free      Thuiswinkel           Ideal, Visa, Mastercard
www.elektrosky.nl       PostNL         € 5,00     Webshop keurmerk      Ideal, Visa, Mastercard, Amex, PayPal
www.belsimpel.nl        PostNL, DPD    € 6,95     Thuiswinkel           Ideal, Visa, Mastercard
.

도움이 되었습니까?

해결책

문제는 .internal_value를 사용하고 있습니다.기본적으로 Excel은 룩업 테이블에 문자열을 저장하고 셀에 색인을 유지합니다..value를 사용하면 괜찮습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top