엑셀 문제_1

ASP.NET 2005. 4. 27. 22:15

허 참... 환장하겠습니다..

엑셀파일을 읽어서 데이터셋에 집어넣는 부분인데요...

List는 엑셀파일 경로가 저장되어 있습니다.

da는 어뎁터구요... ds는 데이터 셋입니다.

string source=@"Provider=Microsoft.Jet.OLEDB.4.0;

Data Source=" +List+ ";Extended Properties="Excel 8.0;HDR=YES"";

string select = "SELECT * FROM [sheet1$]";

conn = new OleDbConnection(source);

da = new OleDbDataAdapter(select,conn);

ds.Clear();

da.Fill(this.ds,"[sheet1$]");

this.dataView1.Table = this.ds.Tables[0];

이렇게 했습니다. 근데 문제점은 엑셀파일을 건드리지 않고 ... (원래 입력자료가 있습니다.)

콜롬별로 읽어오며은.... 자료가 있어도 읽어 지지가 않습니다..

그러다가 엑셀파일을 콜롬에 데이터를 1개라도 넣으면 자료가 콜롬 자료가 다 읽어 지는군요 ㅡㅡ;;;

엑셀파일을 수정해야만 데이터가 읽어지다니 ㅡㅡ;;; 왜 그런지 이유를 모르겠군요..

수정안하고 데이터를 곧바로 읽을수 있으면 참 좋겠는데..

방법이 없을까요?

--답변

컬럼이 숫자형인데 첫 칸이(헤더제외) 비어 있으면 그 컬럼은 모두 안읽어 집니다.

제 생각으로는 첫번째 칸에서 데이터 타입이 결정되고 빈 칸은 문자로 인식해서 뒤에 숫자형 컬럼이 오면 무시해버리는 것 같더군요..

해결 방법은 지금까지 찾아 본결과 없는 것으로 압니다.

읽으려고 하는 엑셀 파일을 생성 할때 템플릿을 만들어서 컬럼의 데이터 형을 잘못 입력하지 않도록 제약을 줘서 에러가 나는 것을 방지하더군요

HDR=YES이면 첫행을 칼름이름 임

string strCon=@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\myExcel.xls;Extended Properties=""Excel 8.0;HDR=YES""" ;

OleDbConnection ExcelConn=new OleDbConnection(strCon);

ExcelConn.Open();

string SQL =@"SELECT CustomerID, CompanyName, ContactName, Country, Phone FROM [Sheet1$] ";

OleDbCommand cmd=new OleDbCommand(SQL,ExcelConn);

OleDbDataReader reader=cmd.ExecuteReader();

-------------------------------------

HDR=NO이면 첫행부터 데이타 임

string strCon=@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\myExcel.xls;Extended Properties=""Excel 8.0;HDR=No""" ;

string SQL =@"SELECT F1,F2,F3,F4,F5 FROM [Sheet2$] ";

와 같이 F1...이런식을 할수 있음.

'ASP.NET' 카테고리의 다른 글

엑셀 3  (0) 2005.04.27
엑셀_2  (0) 2005.04.27
사용자 지정 데이터 바인딩  (0) 2005.03.18
보안 문제! ASP.NET 2.0으로 해결하세요!  (0) 2005.03.18
C# 2.0에서 편집하며 계속하기 기능 사용  (0) 2005.03.18
Posted by 퓨전마법사
,