65.9K
CodeProject 正在变化。 阅读更多。
Home

使用层叠样式表 (CSS) 导出到 Excel/Word

starIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

1.00/5 (1投票)

2013 年 10 月 11 日

CPOL

2分钟阅读

viewsIcon

17418

有时我们需要将数据导出到文件中,并应用相应的样式...这里我尝试展示一个简单的示例... .aspx 页面 <asp:DropDownList

有时我们需要将数据导出到文件中,并应用相应的样式...
这里我尝试展示一个简单的示例...

.aspx 页面
<asp:DropDownList id="ddlFile" runat="server">
         <asp:ListItem Value=".xls">ms-excel</asp:ListItem>
         <asp:ListItem Value=".doc">msword</asp:ListItem>
     </asp:DropDownList><br>
     <asp:Button Visible="True" id="btnExport" runat="server" Text="导出到文件"></asp:Button><br>
     <asp:Label id="Label1" runat="server"></asp:Label>
使用的样式表 (CSSFile.css)
#div1 td {
               font-family: Verdana, Arial, Helvetica, sans-serif;
               font-size: 11px;
             }
   #div1 table {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 11px;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
               }
    #div1 th {
                font-family: Verdana, Arial, Helvetica, sans-serif;
                font-size: 11px;
                color:#ffffff;
                background-color: #316ac5;
             }
    .td1 {
         font-family: Verdana, Arial, Helvetica, sans-serif;
         font-size: 12px;
         color:red;
         background-color: LightSteelBlue;
      }
后台代码页
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
   Dim sb As New System.Text.StringBuilder
   sb.Append("<div id='div1'><table border='1' cellpadding='0' cellspacing='0' width='99%' align='center'>")
   sb.Append("<tr><th height='20px' colspan='2'>报告</th></tr><tr><td colspan='2'>&nbsp;</td></tr>")
   sb.Append("<tr><td colspan='2' class='td1'><b>1</b></td></tr>")
   sb.Append("<tr><td><b>用户名</b></td><td>&nbsp;姓名 1</td></tr>")
   sb.Append("<tr><td><b>位置</b></td><td>&nbsp;孟买</td></tr>")
   sb.Append("<tr><td><b>电子邮件</b></td><td>&nbsp;name.one@sss.com</td></tr>")
   sb.Append("<tr><td colspan='2'>&nbsp;</td></tr>")
   sb.Append("<tr><td colspan='2' class='td1'><b>2</b></td></tr>")
   sb.Append("<tr><td><b>用户名</b></td><td>&nbsp;姓名 2</td></tr>")
   sb.Append("<tr><td><b>位置</b></td><td>&nbsp;德里</td></tr>")
   sb.Append("<tr><td><b>电子邮件</b></td><td>&nbsp;name.two@sss.com</td></tr>")
   sb.Append("<tr><td colspan='2'>&nbsp;</td></tr>")
   sb.Append("<tr><td colspan='2' class='td1'><b>3</b></td></tr>")
   sb.Append("<tr><td><b>用户名</b></td><td>&nbsp;姓名 3</td></tr>")
   sb.Append("<tr><td><b>位置</b></td><td>&nbsp;金奈</td></tr>")
   sb.Append("<tr><td><b>电子邮件</b></td><td>&nbsp;name.three@sss.com</td></tr>")
   sb.Append("</table></div>")
   Label1.Text = sb.ToString()
   sb.Remove(0, sb.Length)
End Sub
用于导出为所需格式的按钮单击事件
Private Sub btnExport_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExport.Click
  Response.Clear()
  Response.Charset = ""
  Response.ContentEncoding = System.Text.Encoding.UTF8
  Response.Cache.SetCacheability(HttpCacheability.NoCache)
  Response.ContentType = "application/" & ddlFile.SelectedItem.Text & ddlFile.SelectedValue
  Response.AddHeader("content-disposition", "attachment;filename=" & "Report" & ddlFile.SelectedValue)
 
  Dim sw As New System.IO.StringWriter
  Dim htw As New HtmlTextWriter(sw)
  Label1.RenderControl(htw)
 
  '追加 CSS 文件
  Dim fi As FileInfo = New FileInfo(Server.MapPath("scripts/CSSFile.css"))
  Dim sb As New System.Text.StringBuilder
  Dim sr As StreamReader = fi.OpenText()
  Do While sr.Peek() >= 0
     sb.Append(sr.ReadLine())
  Loop
  sr.Close()
 
  Response.Write("<html><head><style type='text/css'>" & sb.ToString() & "</style><head>" & sw.ToString() & "</html>")
  sw = Nothing
  htw = Nothing
  Response.Flush()
  Response.End()
End Sub
© . All rights reserved.