xlrd에서 Excel의 특정 셀 값을 읽는 데 어려움이 있습니다. 내가 읽고있는 값 (날짜 값)은 숫자로 변환됩니다. 파이썬 날짜 형식으로 변환 할 수있는 솔루션을 알고 있지만 xlrd 문자열 값을 직접 읽을 수 있습니까? 잘Python xlrd가 문자열로 읽습니다.
답변
xlrd는 날짜를 실수로 변환하지 않습니다. Excel은 날짜를 수레로 저장합니다.
(페이지를 아래로 스크롤) the xlrd documentation에서 인용 : Excel 스프레드 시트 현실에서
에서
날짜, 그런 일이 없습니다. 당신은 부동 소수점 숫자와 경건한 희망입니다. Excel 날짜의 경우 몇 가지 문제가 있습니다.
(1) 날짜는 별도의 데이터 형식으로 저장되지 않습니다. 그들은 부동 소수점 포인트 번호로 저장되며 Excel에서 (a) 숫자 형식을 에 적용하고 /하거나 (b) 세포가 에 날짜를 포함하고 있음을 알고 있어야합니다. 이 모듈은 (a) 에 의해 각 숫자 셀에 적용된 형식을 검사하는 데 도움이됩니다. 이 날짜 형식으로 나타나는 경우 셀은 수가 아닌 날짜로 분류됩니다.
셀 클래스 및 셀 유형 (텍스트, 숫자, 날짜, 부울 등)을 추출하는 다양한 시트 메서드 섹션을 참조하십시오.
또한 www.python-excel.org에서 액세스 할 수있는 자습서를 참조하십시오.
Excel이 셀을 날짜로 해석해야 할 때 Excel이 어떻게 작동하는지 궁금합니다. xlrd가 추측해야하는 것으로 보입니다. – nobar
@nobar : Excel은 xlrd가 사용할 수있는 정보와 정확히 동일합니다. 두 숫자 모두 숫자 형식의 인트로 스를 사용합니다. –
실제로 Excel 파일에는 각 셀 값 외에 셀 유형이 저장됩니다. 각 유형은 정수로 저장되며 sheet.cell_type (rowNumber, columnNumber)을 사용하여 xlrd에 액세스 할 수 있습니다. 공백, 1은 텍스트, 2는 숫자, 3은 날짜입니다. – Brian
, 당신이 말한대로 :
시트 1 :
name latitude longitude status color date
Mount Hood 45.3736 121.6925 active red 01-ene-01
Mount Jefferson 44.6744 121.7978 dormant yellow 23-sep-05
Three-Fingered 44.478 121.8442 extinct green
Mount Washington 4.3325 121.8372 extinct green
South Sister 44.1036 121.7681 active red
Diamond Peak 43.5206 122.1486 extinct green
Mount Thielsen 43.1531 122.0658 extinct green
Mount Scott 42.923 122.0163 dormant yellow
Mount McLoughlin 2.445 122.3142 dormant yellow
시트 2 목록 다음 XLS는이 예
# reading from a xls file (no .xlsx files, no writing!)
import xlrd # install xlrd from http://pypi.python.org/pypi/xlrd
wb = xlrd.open_workbook("YOUR_FILE.xls") # xls file to read from
sh1 = wb.sheet_by_index(0) # first sheet in workbook
sh2 = wb.sheet_by_name('colors') # sheet called colors
# print all rows in first sheet
print "content of", sh1.name # name of sheet
for rownum in range(sh1.nrows): # sh1.nrows -> number of rows (ncols -> num columns)
print sh1.row_values(rownum)
# rowx and colx (x for Excel) start at 1!
print "row3 col 2:", sh1.cell(rowx=3,colx=2).value
col = sh1.col_values(0) # column 0 as a list of string or numbers
print '"A" column content:' # python index 0, 1.colunm, called A
for cell in col: print cell
print sh1.col_values(1) # 2. column, note mix of string (header) and numbers!
색상을
status color
active red
dormant yellow
extinct green
내가 sh1.row_values (rownum) 할 때 나는 값이 이미 부동 소수점으로 변환 된 목록을 얻고있다. – Rnet
Excel은 날짜를 모두 int로 저장합니다. ernally 및 .xls 파일로 변환 한 다음 표시 할 때 그에 따라 형식을 지정합니다. 따라서, 순진한 경우 xlrd으로 읽으면 숫자 나 문자열을 얻게됩니다. 당신이해야 할 일은 셀의 타입이 무엇인지 확인한 다음 그 숫자를 직접 변환하는 것입니다. xldate_as_tuple()
과 같은 xlrd의 내장 함수 또는 사용자 고유의 기능을 사용하십시오.
자세한 내용은 this question을 참조하십시오.
- 1. MFC는 파일에서 유니 코드 문자열을 문자열로 읽습니다.
- 2. Python 길이를 문자열로 표시
- 3. python 'type'객체를 문자열로 변환하십시오.
- 4. python zlib을 C++ 문자열로 출력
- 5. Python dict를 Solr 쿼리 문자열로 변환
- 6. Python 데몬 서브 프로세스를 실행하고 표준 출력을 읽습니다.
- 7. 설치 패키지의 파일을 읽습니다.
- 8. PHP는 콘솔 출력을 읽습니다.
- 9. getResourceAsStream마다 전체 jar가 읽습니다.
- 10. EndRequest 이벤트에서 HttpContext.Current.Request를 읽습니다.
- 11. CSV가 PHP를로드하고 읽습니다.
- 12. app.config의 connectionStrings 요소를 읽습니다.
- 13. PHP는 링크를 읽습니다 rss
- 14. Google.GData.Client는 이메일을 읽습니다.
- 15. red5는 tomcat-users.xml을 읽습니다.
- 16. Java에서 UTF-8 문자열로
- 17. Oracle/Python 문자열로 변환 -> HEX (RAW 열용) -> varchar2
- 18. CGI를 통해 전송할 때 Python 목록 개체가 텍스트 문자열로 수신됩니다.
- 19. python datetime을 읽을 수있는 형식의 날짜 문자열로 변환하는 방법은 무엇입니까?
- 20. WebResponse.GetResponseStream을 문자열로 변환하는 방법은 무엇입니까?
- 21. 변환 : uid_t를 문자열로, off_t를 문자열로
- 22. Java : HTTP 서버의 소켓에서 POST 데이터를 읽습니다.
- 23. 페이지를로드하는 방법 먼저 데이터베이스를 읽습니다.
- 24. jquery로 ATOM 파일의 데이터를 읽습니다.
- 25. perl이 파일에서 정규 표현식을 읽습니다.
- 26. Btrees를 디스크 파일에 저장하고 읽습니다.
- 27. 동기화 데이터베이스가 IHttpAsyncHandler 내부에서 읽습니다.
- 28. NSXMLParser는 속성의 절반 만 읽습니다.
- 29. subprocess.Popen에서 stdout을 비동기 적으로 읽습니다.
- 30. 비닝 시퀀스는 GC 내용으로 읽습니다.
Excel의 작동 방식입니다. 슬프게도 많은 값이 Excel에서 숫자로 저장됩니다. XLRD에서 읽고있는 셀 값의 세부 정보를 입력하십시오. 특히 셀 유형을 인쇄하고 질문에 포함하십시오. –