2011-02-11 4 views
0

엑셀 워크 시트를 만드는 C# 도구가 있으며 나중에 다른 도구에서 다시 읽습니다. 이 작업은 Excel interop을 사용하여 수행됩니다.Excel interop writes는 "빈"셀을 포함하는 파일을 추출합니다.

생성 된 Excel 파일을 읽을 때 예외가 발생했습니다. OleDbException : 너무 많은 필드가 정의되었습니다.

너무 많은 열이 있기 때문에 파일을 읽을 수 없다는 것을 의미합니다. 실제 콘텐츠에는 약 90 개의 열만 있습니다. 해결 방법으로 나는 다른 모든 열을 Excel에서 수동으로 삭제하고 그것을 다시 읽으려고했습니다. 예상대로 작동하므로 생성 된 Excel에 비어 있지 않은 셀 (Excel에서 빈 셀로 표시됨)이 포함됩니다.)

거기에 빈 셀을 만들지 않는 inerop을 알려주는 방법이 있습니까? 아니면 내가 확인해야 할 또 다른 이유가 있습니까?

많은 감사 톰

PS : 나는 오피스 2007이 설치되어있어 동안은, 2003 년 상호 운용성 라이브러리와 함께이 문제가 발생하고있다.

답변

0

해결책을 찾았습니다 : 도구가 한 시트에서 다른 시트로 범위를 복사하고있었습니다.

소스 범위가 올바르게 정의되었습니다. GetRange (fromWorkbookName, fromSheetName, A1, V20);

대상 셀 hoever는 다음과 같이 지정되었습니다. GetRange (toWorkbookName, toSheetName, A1) .EntireRow;

2003 interop에서 이것은 문제가없는 것으로 보입니다. xslx 파일에 대해이 작업을 수행 할 때 Office 2010에서 "# N/A"가 포함 된 "빈"필드가 만들어졌습니다.

불쾌한 음란 ...

는 어쨌든이 도구는 (당신이 전체 라인에 수동으로 범위를 복사 할 때, 심지어 자신을 능가은 경고) 올바르게 복사/붙여 넣기를 수행하지 않았다. 이 문제를 해결 한 후 작동하는 것 같습니다 ....

관련 문제