==
3.aXi建议的方法,如附件所示:他是用纯文本的方式保存到HARD DISK,再打开的
提供的代码是VB写的(我说初看起来怎么就这么别扭呢),在提供给大家一个网址,可以将VB的代码转换为C#的代码,但不要认为这是万能的
有些代码是没有办法转换的,我是遇上了,这时,MSDN真是个好DD
http://www.developerfusion.co.uk/utilities/convertvbtocsharp.aspx
还有,不要像我,傻乎乎地把全部代码都COPY进去转换,只要方法中间的代码COPY进去就可以了
附上我的CODING
string strFileName = user.Trim()+DateTime.Today.Year.ToString()+DateTime.Today.Month.ToString()+DateTime.Today.Day.ToString()+DateTime.Now.Hour.ToString()+DateTime.Now.Minute.ToString()+DateTime.Now.Second.ToString()+"HeaderCheckReport.xls";
StreamWriter sw = new StreamWriter(Server.MapPath(".../toExcel/"+strFileName), false, Encoding.Unicode);
--strFileName,保存Excel的名称 ,不要觉得恐怖,就是精确到秒来区分文件的,否则USER多了,同一个名称的文件只会保留最新版,
且USER要在新窗口自己将Excel保存至本机
string strHeaderText = "";
strHeaderText = this.dgdHideHeaderInfo.Columns[1].HeaderText;
for(int j=2; j<=11;j++)
{
if(this.dgdHideHeaderInfo.Columns[j].HeaderText!="")
{
strHeaderText += "\t"+this.dgdHideHeaderInfo.Columns[j].HeaderText; --类似在键盘上按“Tab”键,以此将每个CELL内容隔在单元格
}
}
sw.WriteLine(strHeaderText);
for(int i=0;i<Convert.ToInt32(this.lblTotal.Text.Trim());i++) --循环将DataGrid内容导出
{
string ei = ((Label)this.dgdHideHeaderInfo.Items[i].FindControl("dgdEI")).Text.ToString();
string site = ((Label)this.dgdHideHeaderInfo.Items[i].FindControl("dgdSite")).Text.ToString();
string billNo = ((Label)this.dgdHideHeaderInfo.Items[i].FindControl("dgdBillNo")).Text.ToString();
string creator = ((Label)this.dgdHideHeaderInfo.Items[i].FindControl("dgdCreator")).Text.ToString();
string creationDate = ((Label)this.dgdHideHeaderInfo.Items[i].FindControl("dgdCreationDate")).Text.ToString();
string Atb1 = ((Label)this.dgdHideHeaderInfo.Items[i].FindControl("dgdAtb1")).Text.ToString();
string Atb2 = ((Label)this.dgdHideHeaderInfo.Items[i].FindControl("dgdAtb2")).Text.ToString();
string Atb3 = ((Label)this.dgdHideHeaderInfo.Items[i].FindControl("dgdAtb3")).Text.ToString();
string Atb4 = ((Label)this.dgdHideHeaderInfo.Items[i].FindControl("dgdAtb4")).Text.ToString();
string Atb5 = ((Label)this.dgdHideHeaderInfo.Items[i].FindControl("dgdAtb5")).Text.ToString();
string Atb6 = ((Label)this.dgdHideHeaderInfo.Items[i].FindControl("dgdAtb6")).Text.ToString();
sw.WriteLine(ei+"\t"+site+"\t"+billNo+"\t"+creator+"\t"+creationDate+"\t"+Atb1+"\t"+Atb2+"\t"+Atb3+"\t"+Atb4+"\t"+Atb5+"\t"+Atb6);
}
sw.Flush();
sw.Close();
(1)弹出一个新窗口,打开保存在SERVER上某文件夹的
this.Response.Write("<script language='javascript'>window.open('../toExcel/"+strFileName+"','_blank','width=800,height=500,top=80,left=100,toolbar=yes,titlebar = yes,menubar=yes');</script>");
---相对路径, 这是我们最终采用的方法,有一小缺点,就是Excel档要保存在SERVER上,可能要麻烦WHO定期清理了