2009-03-13 3 views
8

xls에서 데이터를 가져와야 할 때 사용자가 파일의 위치를 ​​변경할 수 있어야합니다. 따라서 OleDbConnection은 좋은 시작처럼 보였습니다. 첫 번째 병합 된 셀까지였습니다.C#을 사용하여 Excel 2003 스프레드 시트를 엽니 다. 설치 가능한 ISAM을 찾을 수 없습니다. 예외

이 모두를 위해 작동하지만 병합 된 셀이 :

OleDbCommand cmd = new OleDbCommand(); 
cmd.Connection = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data 
Source=F:\test.xls;Extended Properties=Excel 8.0;"); 
cmd.CommandText = "SELECT * FROM [Sheet$]"; 
cmd.Connection.Open(); 

나는이 병합 된 셀에 액세스 할 수 있도록해야한다고 발견

OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\test.xls;Extended Properties=Excel 8.0;HDR=Yes;IMEX=1;"); 

을하지만 나는이 설치 가능한 ISAM 예외를 찾을 수 없습니다 얻을 cmd.conn.open();

나는 여기에 조언을 따랐다 : http://support.microsoft.com/kb/209805

그리고 여기 : Error: "Could Not Find Installable ISAM"

운.

다른 방법으로 xls에서 데이터를 가져올 수 있습니다. 또는 명령이 있어도 xls을 실행하여 작동 할 수있는 겹쳐진 셀을 제거 할 수 있습니다.

답변

15

난 당신이 하나 이상의

OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\test.xls; 
Extended Properties='Excel 8.0;HDR=Yes;IMEX=1';"); 

이 또는 경우 따옴표로 확장 속성을 묶어야하기 때문에 그냥 생각 작은 따옴표는 (당신은 아이디어를 얻을)

OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\test.xls; 
Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1;"";"); 
작동하지 않는 경우

예제에 표시되지 않지만이 오류는 파일 경로의 공백으로 인해 발생할 수 있습니다. 어떤 경우에는 파일 경로를 따옴표로 묶어야합니다.

OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=""F:\test.xls"";... 
+0

누가이 끔찍한 구문을 생각 했습니까? – configurator

+0

약간 변경해야했습니다 : OleDbConnection (@ "공급자 = Microsoft.Jet.OLEDB.4.0; 데이터 원본 = F : \ test.xls; 확장 속성 = 'Excel 8.0; HDR = 아니오; IMEX = 1 ' "); – NitroxDM

+0

이 답변을 주셔서 감사합니다. –

2

가정 시스템 요구 사항은 엑셀의 설치를 포함, 당신은 Excel 개체 라이브러리

Excel.Sheets sheets = m_Excel.Worksheets; 
Excel.Worksheet worksheet = (Excel.Worksheet)sheets.get_Item(1); 
Excel.Range range = worksheet.get_Range("A1", "E1".ToString()); 

등을

도 참조 VSTO

-1

SpreadsheetGear for .NET는 로열티 무료 스프레드 시트입니다 사용할 수 있습니다 .NET 용 구성 요소이며 Excel에 종속성이없는 32 비트 및 64 비트 .NET에 대해 원하는 모든 작업을 수행해야합니다. .NET 2.0 이상).

실시간 ASP.NET 샘플 here을보고 직접 시도하고 싶다면 here 무료 평가판을 다운로드하십시오.

면책 조항 : 나는하는 SpreadsheetGear LLC

1

나는이 문제를 가지고이

을 시도 소유하고 있습니다. 단지 따옴표 때문에

string sConnection = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + sFilePath + ";" + "Extended Properties='Excel 8.0;HDR=YES;'"; 
관련 문제