我将DataSet的数据生成到Excel中,但是都没有列标题.怎么将列标题也转过去呢.
保存excel文件我用的是这个方法
 xlBook.SaveAs(strPath, xlApp.ActiveWorkbook.FileFormat, "", "", xlApp.ActiveWorkbook.ReadOnlyRecommended, xlApp.ActiveWorkbook.CreateBackup, Excel.XlSaveAsAccessMode.xlShared.xlShared, xlApp.ActiveWorkbook.ConflictResolution, False, "", "")

解决方案 »

  1.   

    另外就是从EXCEL文件里读出来用DATAGRID显示后,后面好多空列如何去掉呢
      

  2.   

    这是我原来做的,对你应该有用protected void Button1_Click(object sender, System.EventArgs e)
    {
    SqlConnection Conn=new SqlConnection(information.ConnectionString);
    Excel.Application  oExcel;  
    Excel.Workbook  oBook;  
    Object  oMissing  =  System.Reflection.Missing.Value;  
    oExcel  =  new  Excel.Application();  
    oBook  =  oExcel.Workbooks.Add(oMissing);  
    try
    {
    Conn.Open();
    SqlCommand Cmd=Conn.CreateCommand();
    Cmd.CommandType=CommandType.StoredProcedure;
    Cmd.CommandText="njpm";
    DataSet ds=new DataSet();
    SqlDataAdapter da=new SqlDataAdapter();
    da.SelectCommand=Cmd;
    da.Fill(ds,"score");
    int rowIndex=1;
    int colIndex=0; DataTable table=ds.Tables["score"]; //将所得到的表的列名,赋值给单元格
    foreach(DataColumn col in table.Columns)
    {
    colIndex++; 
    oExcel.Cells[1,colIndex]=col.ColumnName;    
    } //同样方法处理数据
    foreach(DataRow row in table.Rows)
    {
    rowIndex++;
    colIndex=0;
    foreach(DataColumn col in table.Columns)
    {
    colIndex++;
    oExcel.Cells[rowIndex,colIndex]=row[col.ColumnName].ToString();
    }
    }
    oBook.Saved  =  true;  
    oExcel.UserControl  =  false;  
    string  mm=Server.MapPath(".")+"\\aa.xls";//服务器保存地址  
    oExcel.ActiveWorkbook.SaveCopyAs  (mm);  
    Response.Redirect  ("aa.xls");//注意上保存和调用时的路径。
    }
    catch (Exception exc) 
    {
    string msg="数据导出Excel时出现错误!";
    Response.Write("<SCRIPT   language='javascript'>");
    Response.Write("alert('"   +   msg   +   "')");
    Response.Write("</SCRIPT>");
    Response.Write(exc.Message);
    }
    finally
    {
    Conn.Close();
    oBook=null;
    oExcel.Quit();
    oExcel=null;
    GC.Collect(0);
    KillExcelProcess();
    }
    }
    private void KillExcelProcess()
    {
    System.Diagnostics.Process p = System.Diagnostics.Process.GetProcessesByName("EXCEL")[0];
    p.Kill();
    }
      

  3.   

    http://blog.csdn.net/chengking/archive/2005/11/29/539514.aspx
      

  4.   

    读Worksheet的UsedRange部分,只包含表格中使用的区域