我想把datagrid中的某几列(不是全部列)导出到execl,请问怎么做

解决方案 »

  1.   

    对 DataGrid.Items循环 一个Item对应一个TableRow
      

  2.   

    if(tb.Rows.Count!=0)
    {
    int intV;
        Random rd=new Random();
    intV = rd.Next();
    string strFileName=DateTime.Now.Second.ToString()+DateTime.Now.Millisecond.ToString()+intV+".xls";
    string strPath=Page.MapPath("../uploading/"+strFileName);
    FileStream f=new FileStream(strPath,FileMode.CreateNew, FileAccess.ReadWrite);
    StreamWriter fw = new StreamWriter(f, System.Text.Encoding.GetEncoding("GB2312"));
    string OutputString="";
    int iRow;
    int iCol;
    for(iCol=0;iCol<tb.Columns.Count;iCol++)
    {
    OutputString=OutputString+"\t"+tb.Columns[iCol].Caption;
    }
    OutputString = OutputString.Trim();
    fw.WriteLine(OutputString.Trim());
    fw.WriteLine();
    for(iRow=0;iRow<tb.Rows.Count;iRow++)
    {
    OutputString="";
    for(iCol=0;iCol<tb.Columns.Count;iCol++)
    {
    OutputString=OutputString+"\t"+tb.Rows[iRow][iCol].ToString();
    }
    fw.WriteLine(OutputString.Trim());
    }
    fw.Close();
    f.Close();
    string strScript = "<script language=javascript> window.open('../uploading/" + strFileName + "', '', 'left=50,top=50,resizable=1,scrollbars=1,width=500,height=400,menubar=1'); </script>";
    Page.RegisterStartupScript("", strScript);
    }