方式三:其实与方式二类似,不同的是方式三如果事先已经知道DataGrid中绑定的是某个二维数组的话,我们可以避免再次访问数据库,这种做法更加高效.而且这样可以屏蔽那些不需要导出的列.
if
(dgrid.Visible==false)
{
daochumsg.Visible=true; daochumsg.Text="
您还没有确认导出的内容,请先查找";
}
else
{ daochumsg.Visible=false;
Response.Clear (); Response.Buffer = true; Response.Charset = "gb2312"; Response.AppendHeader("Content-Disposition","attachment;filename=CPKForms.xls");
Response.ContentEncoding=System.Text.Encoding.GetEncoding("gb2312");
Response
.ContentType = "application/ms-excel"; this.EnableViewState = false;
System
.IO.StringWriter oStringWriter = new System.IO.StringWriter();
System
.Web.UI.HtmlTextWriter oHtmlTextWriter=new System.Web.UI.HtmlTextWriter(oStringWriter);
GC
.Collect ();
StringWriter
sw=new StringWriter();
sw
.WriteLine("
测试项目/t实际最小值/t实际最大值/t平均值/t标准值下限/t标准值上限/tSigam值/tCpk值");
// foreach(DataRow dr in dt.Rows)
for(int i=0;i<=shijihangshu;i++)
{
sw.WriteLine(storedata2[i,0]+"/t"+storedata2[i,1]+"/t"+storedata2[i,2]+"/t"+storedata2[i,3]+"/t"+storedata2[i,4]+"/t"+storedata2[i,5]+"/t"+storedata2[i,6]+"/t"+storedata2[i,7]);
}
sw.Close(); Response.Write(sw); Response.End();
}