http://expert.csdn.net/Expert/FAQ/FAQ_Index.asp?id=2187

解决方案 »

  1.   

    写入Excel的方法:
    string strFileName = DateTime.Now.ToString("yyyyMMdd") + DateTime.Now.Hour + DateTime.Now.Minute + DateTime.Now.Second + ".XLS";

    Excel.Application myExcel=new Excel.ApplicationClass();
    // myExcel.Visible = true;
    Excel.WorkbookClass oWB = (Excel.WorkbookClass)(myExcel.Workbooks.Add(true));
    for(int i=0;i<=2;i++)//增加多个SHEET
    {
    if(i==0)
    {
    object[] receiveStr1=strTitle1.Split('@');
    int num1=receiveStr1.Length;
    for(int rowNum1=0;rowNum1<num1;rowNum1++)
    {
    string strContent1=receiveStr1[rowNum1].ToString();
    myExcel.Cells[1, rowNum1 + 1] =strContent1;
    }
    string ver1=maxLen1 + "1";
    myExcel.get_Range("A1",ver1).Font.Size= 9 ;
    myExcel.get_Range("A1",ver1).Font.Bold = true;
    myExcel.get_Range("A1",ver1).VerticalAlignment =  Excel.XlVAlign.xlVAlignCenter;
    myExcel.get_Range("A1",ver1).HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;

    DataTable dt1 =ds1.Tables[0];
    DataRow dr1;
    int count1=dt1.Rows.Count; int I1,J1;
    for(I1 = 2;I1< count1 + 2;I1++)
    {
    dr1=dt1.Rows[I1-2];

    for(J1 = 0;J1<dt1.Columns.Count ;J1++)
    {
    myExcel.Cells[I1,J1+1] = dr1[J1].ToString().Trim() ;
    }
    }
    }
    if(i==1)
    {
    myExcel.Sheets.Add (Missing.Value,Missing.Value,Missing.Value,Missing.Value );
    object[] receiveStr2=strTitle2.Split('@');
    int num2=receiveStr2.Length;
    for(int rowNum2=0;rowNum2<num2;rowNum2++)
    {
    string strContent2=receiveStr2[rowNum2].ToString();
    myExcel.Cells[1, rowNum2 + 1] =strContent2;
    }
    string ver2=maxLen2 + "1";
    myExcel.get_Range("A1",ver2).Font.Size= 9 ;
    myExcel.get_Range("A1",ver2).Font.Bold = true;
    myExcel.get_Range("A1",ver2).VerticalAlignment =  Excel.XlVAlign.xlVAlignCenter;
    myExcel.get_Range("A1",ver2).HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;

    DataTable dt2 =ds2.Tables[0];
    DataRow dr2;
    int count2=dt2.Rows.Count; int I2,J2;
    for(I2 = 2;I2< count2 + 2;I2++)
    {
    dr2=dt2.Rows[I2-2];

    for(J2 = 0;J2<dt2.Columns.Count ;J2++)
    {
    myExcel.Cells[I2,J2+1] = dr2[J2].ToString().Trim() ;
    }
    }
    }
    if(i==2)
    {
    myExcel.Sheets.Add (Missing.Value,Missing.Value,Missing.Value,Missing.Value );
    object[] receiveStr3=strTitle3.Split('@');
    int num3=receiveStr3.Length;
    for(int rowNum3=0;rowNum3<num3;rowNum3++)
    {
    string strContent3=receiveStr3[rowNum3].ToString();
    myExcel.Cells[1, rowNum3 + 1] =strContent3;
    }
    string ver3=maxLen3 + "1";
    myExcel.get_Range("A1",ver3).Font.Size= 9 ;
    myExcel.get_Range("A1",ver3).Font.Bold = true;
    myExcel.get_Range("A1",ver3).VerticalAlignment =  Excel.XlVAlign.xlVAlignCenter;
    myExcel.get_Range("A1",ver3).HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;

    DataTable dt3 =ds3.Tables[0];
    DataRow dr3;
    int count3=dt3.Rows.Count; int I3,J3;
    for(I3 = 2;I3< count3 + 2;I3++)
    {
    dr3=dt3.Rows[I3-2];

    for(J3 = 0;J3<dt3.Columns.Count ;J3++)
    {
    myExcel.Cells[I3,J3+1] = dr3[J3].ToString().Trim() ;
    }
    }
    }
    }
    string path=strPath.Replace("/","\\").ToString() + "\\" + strFileName;
    oWB.SaveAs(path,Missing.Value,"","",false,false,Excel.XlSaveAsAccessMode.xlNoChange,1,false,Missing.Value,Missing.Value);
    GC.Collect();
    myExcel.Workbooks.Close();
    oWB = null;
    myExcel.Quit();
    myExcel = null;
    return strFileName;