2010-07-04 6 views
0

헤더와 파일이없는 파일을 지원하기 위해 Excel에 쓸 C# 프로그램이 있습니다.헤더없이 OLEDB를 통해 Excel 통합 문서 만들기

헤더를 원하는 위치에 쓰면 괜찮습니다.하지만 헤더가없는 파일을 읽는 경우 헤더없이 테이블을 작성하려고합니다. 같은 제목을 사용하여 테이블을 만들면 콘텐츠에 F1, F2, F3 등이 표시됩니다.

쓰기 내 연결 문자열은 다음과 같습니다 -

제공 = Microsoft.Jet.OLEDB.4.0; 데이터 원본 = 파일 이름, 확장 속성 = "Excel 8.0, HDR = 아니요, IMEX = 0;"

헤더를 잃는 방법에 대한 아이디어가 있으십니까?

+0

가능 중복 [인 OleDB 및 혼합 엑셀 데이터 유형 : 누락 데이터 (http://stackoverflow.com/questions/3232281/oledb-mixed-excel-datatypes-missing-data) –

답변

0

이 질문에 지금은 조금 오래된,하지만 다음 내가 다른 비슷한 질문 대답하는 방법이다 :이 꽤되지

를하지만, 내가 그 안에 아무것도 새 워크 시트를 만들 찾은 유일한 방법 . 내가 발견 한 유일한 문제는 Oledb가 자동으로 CREATE 명령에 지정된 헤더 셀에 명명 된 범위를 만들지 만 그 점에 대해 신경 쓰지 않는다고 가정하면 문제가 해결됩니다.

string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + 
    ";Mode=ReadWrite;Extended Properties=\"Excel 8.0;HDR=NO\""; 

using (OleDbConnection conn = new OleDbConnection(connectionString)) 
{ 
    conn.Open(); 

    using (OleDbCommand cmd = new OleDbCommand()) 
    { 
     cmd.Connection = conn; 
     cmd.CommandText = "CREATE TABLE [MySheet] (a string)"; // Doesn't matter what the field is called 
     cmd.ExecuteNonQuery(); 

     cmd.CommandText = "UPDATE [MySheet$] SET F1 = \"\""; 
     cmd.ExecuteNonQuery(); 
    } 

    conn.Close(); 
} 
관련 문제