我的代码是这样的,但是导出Excel后 编号这一列在最后,我想把编号这一列放在最前面应该怎么修改一下代码。
 protected void ImageButtonExcel_Click(object sender, ImageClickEventArgs e)
    {
        System.Data.DataTable dt;
        
        ds = new DataSet();
        ds = SqlDA.GetQueryTable("TTESTPLAN.PlanName,TTESTPAPERINEXAMPLAN.SubjectTitle,Temployee.EmpName,Tdepartment.DepartmentName,TSCORE.TestDate,TSCORE.TimeDate,TSCORE.Mark,TSCORE.Passes","TTESTPLAN inner join TTESTPAPERINEXAMPLAN on TTESTPLAN.PlanID = TTESTPAPERINEXAMPLAN.PlanID inner join TSCORE on TTESTPAPERINEXAMPLAN.ID = TSCORE.TestpaperID inner join TPLANEMP on TSCORE.TestpaperID = TPLANEMP.PaperID inner join Temployee on TPLANEMP.Empno = Temployee.EmployeeID inner join Tdepartment on TPLANEMP.Deptno = Tdepartment.DepartmentID", " where TPLANEMP.Isexam = '1'");
        ds.Tables[0].Columns.Add("编号", typeof(int));
        for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
        {
            int j = i + 1;
            ds.Tables[0].Rows[i]["编号"] = j.ToString();
        }
        dt = ds.Tables[0];
        dt.Columns["PlanName"].ColumnName = "考试计划";
        dt.Columns["SubjectTitle"].ColumnName = "试卷名称";
        dt.Columns["EmpName"].ColumnName = "员工名";
        dt.Columns["DepartmentName"].ColumnName = "单位名";
        dt.Columns["TestDate"].ColumnName = "考试时间";
        dt.Columns["TimeDate"].ColumnName = "考试用时";
        dt.Columns["Mark"].ColumnName = "成绩";
        dt.Columns["Passes"].ColumnName = "及格情况";
        string textExcel = "gaohj" + DateTime.Now.Millisecond.ToString() + ".xls";
        string path = Server.MapPath(textExcel);
        //string path=Server.MapPath(".")+"\\gaohj.xls";
        if (File.Exists(path))
        {
            Response.Write("<script>alert('文件已经存在,请指定其他文件名!')</script>");
            return;
        }
        else
        {
            OWC.SpreadsheetClass xlsheet = new OWC.SpreadsheetClass();
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                for (int j = 0; j < dt.Columns.Count; j++)
                {
                    string bb = dt.Columns[j].ColumnName;
                    if (i == 0)
                    {
                        xlsheet.ActiveSheet.Cells[i + 1, j + 1] = bb;
                    }
                    if (j == 4 || j == 5)//列5列6的时候数字开头会出现#号,所以在字符串前加'号
                    {
                        string temp;
                        if (j == 4)
                        {
                            temp = "'" + dt.Rows[i][j].ToString().Substring(0, dt.Rows[i][j].ToString().IndexOf(' '));
                        }
                        else
                        {
                            temp = "'" + dt.Rows[i][j].ToString();
                        }
                        xlsheet.ActiveSheet.Cells[i + 2, j + 1] = temp;
                    }
                    else
                    {
                        xlsheet.ActiveSheet.Cells[i + 2, j + 1] = dt.Rows[i][j].ToString();
                    }
                }
            }
            xlsheet.ActiveSheet.Export(Server.MapPath(".") + "\\" + textExcel, OWC.SheetExportActionEnum.ssExportActionNone);
        }        //打开或保存文件
        string tmpFileName = path;
        FileInfo tmpFI = new FileInfo(tmpFileName);
        Response.Clear();
        Response.ClearHeaders();
        Response.Buffer = false;        Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(Path.GetFileName(tmpFileName), System.Text.Encoding.UTF8));
        Response.AppendHeader("Content-Length", tmpFI.Length.ToString());
        Response.ContentType = "application/octet-stream";
        Response.WriteFile(tmpFileName);
        Response.Flush();
        Response.End(); 
    }

解决方案 »

  1.   

    bads.Tables[0].Columns.Add("编号", typeof(int)); 
            for (int i = 0; i  < ds.Tables[0].Rows.Count; i++) 
            { 
                int j = i + 1; 
                ds.Tables[0].Rows[i]["编号"] = j.ToString(); 
            } 
            dt = ds.Tables[0]; 
            dt.Columns["PlanName"].ColumnName = "考试计划"; 
            dt.Columns["SubjectTitle"].ColumnName = "试卷名称"; 
            dt.Columns["EmpName"].ColumnName = "员工名"; 
            dt.Columns["DepartmentName"].ColumnName = "单位名"; 
            dt.Columns["TestDate"].ColumnName = "考试时间"; 
            dt.Columns["TimeDate"].ColumnName = "考试用时"; 
            dt.Columns["Mark"].ColumnName = "成绩"; 
            dt.Columns["Passes"].ColumnName = "及格情况"; 
    顺序调换 一下 不行吗 ?