System.Data.OleDb
을 사용하여 매우 큰 텍스트 셀 (약 8900 문자)이있는 .xls 파일을 읽으려고합니다. Microsoft ACE OLEDB 공급자. .xls 파일의 내용을 제어 할 권한이 없습니다.ACE OLEDB Excel 테이블에 큰 텍스트가있는 "외부 테이블이 예상 된 형식이 아닙니다"
Exception thrown: 'System.Data.OleDb.OleDbException' in System.Data.dll
Additional information: External table is not in the expected format.
나는 .xls 파일을 최소화하고 텍스트 셀이 예외의 원인을 것 같다 : .Open()
OleDbConnection
할 때
나는 다음과 같은 예외를 얻을. x64 OS에 MS Office 2010 x86이 설치되어 있습니다.
가 나는 다음의 모든 시도 한 것도있는 문제를 해결하지 :
- ACE 12.0 86
- ACE 12.0 64
- ACE 15.0 X32 설정
- 레지스트리 팅겨 TypeGuessRows = 0
- 연결 문자열 IMEX = 1
- 연결 문자열 확장 속성 = "Excel 8.0;"
- 연결 문자열 확장 속성 = "Excel 12.0;"
내 연구 결과에 따르면 이전 JET 공급자가 255 자로 필드를 자르는 데 사용 된 것 같습니다. 나는 예외를 던지지 않고 ACE가 파일을 읽도록 할 수 없다.
예외는 .NET 응용 프로그램에서이 작업을 수행하려고 시도하는 것입니다. 그렇다면'C#','VB.NET' 등으로 질문을 태그하면 더 나은 도움을 얻을 수 있습니다. 즉, C#에서 문제를 재현 할 수 없습니다. 오류를 보여줄 작은 샘플 .xls 파일에 대한 링크를 제공 할 수 있습니까? –
예, C#. 샘플을 https://dropfile.to/EZmAt3K에 업로드했습니다. – CoderBrien
Excel에서 데이터 탭> 액세스> 엑셀 파일> 등을 선택한 다음 속성에서 생성 된 연결 문자열을 확인할 수 있습니다. 그렇지 않으면 ODBC 드라이버 중 일부를 시도 할 수 있습니다. https://www.connectionstrings.com/excel-2007-odbc/ – Slai