2010-05-14 6 views
0

C# interop 서비스에서 Excel 시트를 셀 단위로 읽는 중입니다. 내 Excel 시트에는 날짜 셀이있는 반면. 몇 가지 이중 값을 생성합니다. 날짜로 변환하는 중입니다.엑셀 시트를 읽는 이유는 무엇입니까?

double dbl = Convert.ToDouble(((Excel.Range)worksheet.Cells[iRowindex,    colIndex_q17]).Value2); 
         string strDate3 = DateTime.FromOADate(dbl).ToShortDateString(); 
         drRow[dtSourceEXLData.Columns[constants.VisualDate]] = strDate3; 

확인 하시겠습니까? 그러나 약간의 시간이

날짜 형식을 얻는 값을 발생합니다. 왜 이런 일이 일어나는 걸까요? "올바른 형식이 아닌 입력 문자열"을 예외로합니다. 같은 열의 다른 셀처럼 이중 값을 생성하지 않는 이유는 무엇입니까?

답변

0

아마도 그 세포의 값은 내가 해결책을 발견, 어쨌든 실제로 문자열

+0

네 그였다을하지만 해결책을해야합니까? 내가 옳은 일을 한거야? –

0

입니다 :

object obj=((Excel.Range)worksheet.Cells[iRowindex, colIndex_q17]).Value2; 
Type type = obj.GetType(); 
string strDate3 = string.Empty; 
double dbl = 0.0; 

if (type == typeof(System.Double)) 
{ 
    dbl = Convert.ToDouble(((Excel.Range)worksheet.Cells[iRowindex, colIndex_q17]).Value2); 
    strDate3 = DateTime.FromOADate(dbl).ToShortDateString(); 
} 
else 
{ 
    DateTime dt = new DateTime().Date; 
    dt = Convert.ToDateTime(obj).Date; 
    strDate3 = dt.ToShortDateString(); //DateTime.FromOADate(dbl).ToShortDateString(); 
} 
drRow[dtSourceEXLData.Columns[constants.VisualDate]] = strDate3; //((Excel.Range)worksheet.Cells[iRowindex, colIndex_q16]).Value2.ToString(); 
관련 문제