|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
就安全性而言,net网页编程已经远远低于VB.NET,更无法与安全性著称的C#相比。明天弄了一下控件导出Excel,因而发生了格局成绩了,一些日期如20091222的称号被显现为迷信记数法。
以是,我搜了博客园。一年夜堆的文章都是复制来复制往的材料。
基础上都有这么一行闪亮的代码:文本:vnd.ms-excel.numberformat:@
有深切一点的文章,会告知你,这个工具要写在<tdstyle="vnd.ms-excel.numberformat:@">xxx</td>里
因而这里就发生这两个分支办法:
1.间接就写上<tdstyle="vnd.ms-excel.numberformat:@"><%#Eval("XXX")%></td>
2.没法间接写<td的,由GridView等间接发生Table的就来背景轮回输入法:
这里任意拿一段:
//对必要格局化的列举行格局化
//e.Item.Cells[0].Attributes.Add("style","vnd.ms-excel.numberformat:@");
--------------------------------------------------------------------------------------
实践上,我们导出Excel后,假如用记事本翻开,能够发明,实践差未几就是个html。
即然是html,固然也能够用款式了。既然不克不及援用内部款式,那间接就写外部款式就好了。
因而,我发生了这么一小段代码:
代码
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.ContentEncoding=System.Text.Encoding.GetEncoding("gb2312");
HttpContext.Current.Response.Write("<metahttp-equiv=Content-Typecontent=text/html;charset=gb2312>");
HttpContext.Current.Response.AppendHeader("content-disposition","attachment;filename=export.xls");
HttpContext.Current.Response.ContentType="application/vnd.ms-excel";
StringBuildersb=newStringBuilder();
sb.Append("<head><style>tabletd,th{vnd.ms-excel.numberformat:@;text-align:center;}tableth{color:red}</style></head>");//关头看这里,格局化,并为题目加白色
System.IO.StringWritersw=newSystem.IO.StringWriter();
HtmlTextWriterhtw=newHtmlTextWriter(sw);
foreach(ControlctinctList)
{
ct.RenderControl(htw);
}
sb.Append(sw.ToString());
sw.Close();
HttpContext.Current.Response.Write(sb.ToString());
HttpContext.Current.Response.End();
至此,经由过程在输入前,附加<style></style>款式,便可控件Excel的输入格局了。
据说很厉害,甚至可以把C#也干掉^_^,不过也很复杂,本来C++已经够复杂的。有人甚至还提出把这个东东引进标准,我觉得基本上不可能的。 |
|