OleDbConnection을 사용하여 Excel 파일의 데이터를 DataTable로로드하는 일부 코드로 작업하고 있습니다. 현재 첫 번째 시트에 기본값을 IT하지만 점점 다음과 같은 코드를 사용하여 이름의 : Excel 문서는 (우리가 제 3 자로부터받는)라는 이름의 범위를 포함하기 시작했을 때GetOleSchemaTable()을 사용하여 시트 이름을 가져올 수 없습니다.
string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=myFilename.xlsx;Extended Properties=""Excel 12.0 Xml;HDR=YES"""
DataTable = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
if (schemaTable.Rows.Count > 0)
return schemaTable.Rows[0]["TABLE_NAME"].ToString();
else
return "Sheet1$"
이 최근까지 잘 작동하고있다. 나는 내가 찾을 수있는 숨겨진 시트가 없다.
지금schemaTable.Rows[0]["TABLE_NAME"].ToString()
첫 번째 범위의 이름을 반환합니다.
내 schemaTable 객체와 다른 점이있어 시트의 이름이 지정된 범위가 아니라 시트를 식별 할 수 있습니까?
? GetOleDbSchemaTable의 전체 내용을 출력 할 때 범위와 시트를 구별 할 수있는 항목이있는 열을 발견합니까? 나는'TABLE_TYPE' 컬럼이 필요한 정보를 담고 있다는 것을 이미지 할 수있다. 반환 된 모든 열의 목록은 다음과 같습니다. http://msdn.microsoft.com/en-us/library/system.data.oledb.oledbschemaguid.tables.aspx – Heinzi