interop을 사용하여 Excel 파일에서 정보를 읽고 가져 오는 중 Excel에서 날짜를 읽을 때 한 가지 문제가 발생했습니다. 02/05/2012; 그것은 41060을 제공합니다.Interop Excel.Application을 사용하여 Excel 파일에서 "date"를 읽습니다. 응용 프로그램
적절한 날짜 값을 읽는 방법이나 41060이 반환되는 이유는 무엇입니까?
interop을 사용하여 Excel 파일에서 정보를 읽고 가져 오는 중 Excel에서 날짜를 읽을 때 한 가지 문제가 발생했습니다. 02/05/2012; 그것은 41060을 제공합니다.Interop Excel.Application을 사용하여 Excel 파일에서 "date"를 읽습니다. 응용 프로그램
적절한 날짜 값을 읽는 방법이나 41060이 반환되는 이유는 무엇입니까?
답변을 찾았지만 배경 지식이 도움이 될 수 있습니다.
Excel에는 날짜와 시간이 숫자로 저장됩니다. 사용자가 2012 년 5 월 31 일을 셀에 입력하면 Excel은이 값을 날짜로 인식하므로 값을 41060으로 저장하고 숫자 서식을 "dd-mmm-yyyy"로 설정합니다. 사용자가 41060을 셀에 입력하고 숫자 형식을 "dd-mmm-yyyy"로 설정하면 값이 2012 년 5 월 31 일으로 표시됩니다. 데이터 입력이 완료되면 Excel은 첫 번째 41060이 날짜로 입력되고 두 번째 입력이 숫자로 입력되었다는 것을 기록하지 않습니다. PC에서
는 날짜의 정수 부분은 1900 년부터 일 (Mac의 경우 올해 1904 사용)과 소수 부분은 다음과 같습니다
time in seconds
---------------
seconds in day
그래서 41060.25 나타냅니다 : 2012 (31) 월 6:00:00
Excel InterOp을 통해 데이터를 읽을 때 데이터 유형을 모르는 경우 .NumberFormat
과 .Value
을 얻는 것이 좋습니다. .Text
도 유용 할 수 있습니다. 그것은 사용자가 보는 가치를 제공합니다.
경고 : .NumberFormat
을 얻으면 Excel에서 사용하는 형식이 VBA의 Format() 및 VB.Net의 Format()에서 사용되는 형식과 약간 다릅니다.
엑셀 날짜에 대한 자세한 내용은 How to use dates and times in Excel을 참조하십시오.
날짜를 두 번 반환하므로 DateTime.FromOADate (41060)가 올바른 형식의 날짜를 반환합니다.
해결책을 시도해 보겠습니다. :) –
그것은 작동합니다. 치어 리더 –
Thx 자세한 내용은 :) –