2009-09-18 3 views
3

CarlosAg.ExcelXmlWriter 라이브러리를 사용하여 C#으로 Excel 파일을 생성하고 있습니다. 모든 데이터를 문자열로 처리하면 모든 것이 정상적으로 작동하지만 Excel에서 날짜 필드로 인식 할 셀이 필요합니다. 그에 따라 데이터 형식을 설정하려고하면 결과 Excel 파일이 Excel 2003 (또는 Excel 2007)에서 열리지 않습니다.CarlosAg.ExcelXmlWriter를 사용하는 날짜의 문제

엑셀 2003 년, 나는 부하에 다음과 같은 오류 얻을 : 나는 날짜 시간을 생성하기 위해 다음 코드를 사용하고 표

:

문제가로드하는 동안 다음과 같은 영역 에서 온을 문제를 일으키는 셀 :

string val = DateTime.Now.ToString("MM/dd/yyyy");  
row.Cells.Add(new WorksheetCell(val, DataType.DateTime)); 

감사합니다.

답변

3

결국 나는이 사실을 알게되었습니다. 저를 올바른 방향으로 밀어 주신 Lance Roberts에게 감사드립니다.

첫째, DateStyle의라는 WorksheetStyle을 정의하고 유효한 엑셀 날짜 형식에 해당하는 NumberFormat 속성을 설정 : 다음

Workbook book = new Workbook(); 
Worksheet sheet = book.Worksheets.Add("myWorksheet"); 

WorksheetStyle dateStyle = book.Styles.Add("dateStyle"); 
dateStyle.NumberFormat = "Dd Mmm Yy"; 

WorksheetRow row = book.Worksheets[0].Table.Rows.Add(); 

, "S"날짜 형식을 .NET을 사용하여 날짜를 내보내고 추가 셀 :

string val = DateTime.Now.ToString("s"); 
row.Cells.Add(val, DataType.DateTime, "dateStyle"); 
1

나는 그의 라이브러리를 사용하지 않았지만 Excel에서 많이 사용합니다. 셀에 대한 데이터 유형으로 그가 무엇을하는지 알지 못합니다. 왜냐하면 그것들은 그렇게 작동하지 않기 때문입니다. Excel 셀의 날짜는 모두 날짜 형식의 정수입니다.

날짜를 정수로 넣으려고합니다. 트릭이 문자열을 올바른 정수로 변환하고 있습니다. Excel의 날짜로 방법론에 대한 정보는 this link을 참조하십시오. 그런 다음 WorksheetStyle.NumberFormat 속성을 설정합니다.

+0

이것은 흥미롭고 유용한 정보이지만 내 특정 문제에 대한 해결책을 제공하지 않습니다. – newdayrising

+0

나는 당신에게 옳은 대답으로 이끌어주기를 바랬습니다. 나는 많은 시간을 알고, 단서가 문제를 해결하는 데 도움이되었습니다. –