C#에서 Execl 일반 파일 가져오기 및 내보내기

2242 단어 exec
excel 쓰기:
 
System.Windows.Forms.SaveFileDialog sd=new System.Windows.Forms.SaveFileDialog();

sd.Filter="Excel 2003  |*.xls";

if(sd.ShowDialog()==System.Windows.Forms.DialogResult.OK)

{

    FileStream fs=new FileStream(sd.FileName,FileMode.Create,FileAccess.Write);

    StreamWriter sw=new StreamWriter(fs,Encoding.Default);

    string line="";

    // 

    for (int i = 0; i < datamain.Columns.Count; i++)

    {

        line += datamain.Columns[i].Header.ToString() + "\t";

    }

    sw.WriteLine(line);

    for (int j = 0; j < datamain.Items.Count; j++)

    {



        Statresult dt = datamain.Items[j] as Statresult;

        line = dt.Client + "\t" + dt.Total + "\t" + dt.Receive + "\t" + dt.Rates + "\t" + dt.Inspection + "\t" + dt.Bugnum + "\t" + dt.Qualified + "\t";

        sw.WriteLine(line);



    }

    // 

    sw.Close();

    fs.Close();

    MessageBox.Show(" !"," ",MessageBoxButton.OK,MessageBoxImage.Information);

}


excel 읽기:
// oledb excel 

strConn = "Provider=Microsoft.Jet.  OLEDB.4.0;Data Source=D:\\Test.xls;Extended   Properties='Excel8.0;HDR=Yes;IMEX=1'";  

OleDbConnection conn = new OleDbConnection(strCon);

// 

string sql = "SELECT * FROM [Sheet1$]";

OleDbDataAdapter adp = new OleDbDataAdapter(sql,conn);

DataSet myDataSet = new DataSet();

adp.Fill(myDataSet,"[Sheet1$]");


 
그 중에서 읽기의 주요 주의는 Extended Properties='Excel8.0이다.HDR=Yes;IMEX=1', Excel8.0은 어떤 버전의 Execl 프로그램으로 파일을 읽는지, HDR=Yes는 첫 번째 줄을 표로 하는 필드, IMEX=1은 첫 번째 줄을 표로 하는 필드를 나타낸다.상기 매개 변수는 반드시
따옴표로 포함해야 한다. 그렇지 않으면 잘못 보고할 것이다."SELECT * FROM [sheet1$]"의 [sheet1$] 는 Execl 파일의 워크북을 대표합니다. 워크북을'asd'라고 가정하면 조회된 테이블 이름은'SELECT * FROM [asd$]'입니다.
상기 몇 가지는 응용 과정이 운반된 문제로 비교적 쉽게 소홀히 하여 오류를 초래한다.
이상의 주요 내용은 참고입니다http://www.cnblogs.com/861580030/archive/2011/01/14/1935246.html 자신의 응용에 자신의 이해를 더한다.

좋은 웹페이지 즐겨찾기