我的代码是这样的,但是导出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();
}
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();
}
解决方案 »
- 数组合并
- asp.net Fck编辑器问题
- post_postback
- The ConnectionString property has not been initialized
- 求救,在ASP.NET中如何让弹出的页面随着主页面上下的移动而移动呢,而且在这个页面中还可以操作,如登录啊,搜索啊?
- 紧急求救:frameset左右两边互动的问题!
- 怎样在WEB也中加入可以播放3GP手机视频格式的播放插件?
- sql 2000 dropdownlist数据绑定
- 怎么注册aspnetmenu控件,在vs.net 2003
- 菜鸟问题:我想学asp.net 要安装什么开发环境 什么开发工具?
- ASP.NET 提示错误“回发或回调参数无效......” 不知道怎么改正错误 谁帮帮我 急!
- 数据表排序字段的设计
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 = "及格情况";
顺序调换 一下 不行吗 ?