`
61party
  • 浏览: 1054283 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

ASP.NET 2.0导出到Excel时如何保留换行?

阅读更多

由于Excel毕竟不是 HTML,它有自己的样式标准,在Excel 中,实现换行的方法是:

  1. <brstyle='mso-data-placement:same-cell;'/>

完整代码:

  1. <%@PageLanguage="C#"Trace="false"AutoEventWireup="true"%>
  2. <!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <scriptrunat="server">
  4. protectedvoidButton1_Click(objectsender,EventArgse)
  5. {
  6. System.Web.HttpContextcurContext=System.Web.HttpContext.Current;
  7. //IO用于导出并返回excel文件
  8. System.IO.StringWriterstrWriter=null;
  9. System.Web.UI.HtmlTextWriterhtmlWriter=null;
  10. //设置编码和附件格式
  11. HttpContext.Current.Response.Clear();
  12. HttpContext.Current.Response.Buffer=true;
  13. HttpContext.Current.Response.AddHeader("content-disposition",string.Format("attachment;filename={0}","aaa.xls"));
  14. curContext.Response.ContentType="application/vnd.ms-excel";
  15. curContext.Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB18030");
  16. curContext.Response.Charset="";
  17. //导出excel文件
  18. strWriter=newSystem.IO.StringWriter();
  19. htmlWriter=newSystem.Web.UI.HtmlTextWriter(strWriter);
  20. htmlWriter.WriteLine("标题");
  21. //返回客户端
  22. GridView1.RenderControl(htmlWriter);
  23. curContext.Response.Write(strWriter.ToString().Replace("<br/>","<brstyle='mso-data-placement:same-cell;'/>"));
  24. curContext.Response.End();
  25. }
  26. protectedvoidPage_Load(objectsender,EventArgse)
  27. {
  28. if(!Page.IsPostBack)
  29. {
  30. GridView1.DataSource=CreateDataSourceByXianhuiMeng();
  31. GridView1.DataBind();
  32. }
  33. }
  34. System.Data.DataViewCreateDataSourceByXianhuiMeng()
  35. {
  36. System.Data.DataTabledt=newSystem.Data.DataTable();
  37. System.Data.DataRowdr;
  38. dt.Columns.Add(newSystem.Data.DataColumn("学生班级",typeof(System.String)));
  39. dt.Columns.Add(newSystem.Data.DataColumn("学生姓名",typeof(System.String)));
  40. dt.Columns.Add(newSystem.Data.DataColumn("语文",typeof(System.Decimal)));
  41. dt.Columns.Add(newSystem.Data.DataColumn("数学",typeof(System.Decimal)));
  42. dt.Columns.Add(newSystem.Data.DataColumn("英语",typeof(System.Decimal)));
  43. dt.Columns.Add(newSystem.Data.DataColumn("计算机",typeof(System.Decimal)));
  44. for(inti=0;i<8;i++)
  45. {
  46. System.Randomrd=newSystem.Random(Environment.TickCount*i);;
  47. dr=dt.NewRow();
  48. dr[0]="班级"+i.ToString();
  49. dr[1]="学生姓名:孟子E章"+i.ToString()+"<br/>所在班级:"+"班级"+i.ToString();
  50. dr[2]=System.Math.Round(rd.NextDouble()*100,2);
  51. dr[3]=System.Math.Round(rd.NextDouble()*100,2);
  52. dr[4]=System.Math.Round(rd.NextDouble()*100,2);
  53. dr[5]=System.Math.Round(rd.NextDouble()*100,2);
  54. dt.Rows.Add(dr);
  55. }
  56. System.Data.DataViewdv=newSystem.Data.DataView(dt);
  57. returndv;
  58. }
  59. publicoverridevoidVerifyRenderingInServerForm(Controlcontrol)
  60. {}
  61. </script>
  62. <htmlxmlns="http://www.w3.org/1999/xhtml">
  63. <headid="Head1"runat="server">
  64. <title>无标题页</title>
  65. </head>
  66. <body>
  67. <formid="form1"runat="server">
  68. <asp:GridViewID="GridView1"runat="server"AutoGenerateColumns="false">
  69. <Columns>
  70. <asp:BoundFieldHtmlEncode="false"DataField="学生姓名"HeaderText="测试字段"/>
  71. </Columns>
  72. </asp:GridView>
  73. <asp:ButtonID="Button1"runat="server"OnClick="Button1_Click"Text="Button"/>
  74. </form>
  75. </body>
  76. </html>

要查阅 Excel 中使用的样式规范,请参考:Microsoft® Office HTML and XML Reference。下载地址:

http://download.microsoft.com/download/a/c/1/ac18e8a2-ce20-41b5-8407-c4cec4a17f19/ofhtml9.exe

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics