• Export to Excel, Word with css (Cascading Style Sheets)


    有时,我们需要导出数据到EXCEL 或word,并且包含CSS样式。

    我们可以把这个CSS样式设置成绝对路径,这样下载的文件自然也会带有样式。

    把link到页面的CSS的href= "../style.css " 改成绝对路径,比如 href= "http://www.csdn.net/style.css "  

    我们也可以把CSS样式文件做为一个流刷到输出流里。下面是一个简单的例子: 

    .aspx page
    Select File Format 

    <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="Export to File"></asp:Button><br>
    <asp:Label id="Label1" runat="server"></asp:Label>
    Stylesheet used (CSSFile.css)

    #div1 td {
              font-familyVerdana, Arial, Helvetica, sans-serif;
              font-size11px;
              }
    #div1 table {
              font-familyVerdana, Arial, Helvetica, sans-serif;
              font-size11px;
              border-top-width1px;
              border-right-width1px;
              border-bottom-width1px;
              border-left-width1px;
              }
    #div1 th {
              font-familyVerdana, Arial, Helvetica, sans-serif;
              font-size11px;
              color:#ffffff;
              background-color#316ac5;
              }
    .td1 {
              font-familyVerdana, Arial, Helvetica, sans-serif;
              font-size12px;
              color:red;
              background-colorLightSteelBlue;
    }
     
    Code-Behind page

        Private Sub Page_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandlesMyBase.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'>Reports</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>User Name</b></td><td>&nbsp;Name One</td></tr>")
            sb.Append("<tr><td><b>Location</b></td><td>&nbsp;Mumbai</td></tr>")
            sb.Append("<tr><td><b>Email</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>User Name</b></td><td>&nbsp;Name Two</td></tr>")
            sb.Append("<tr><td><b>Location</b></td><td>&nbsp;Delhi</td></tr>")
            sb.Append("<tr><td><b>Email</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>User Name</b></td><td>&nbsp;Name Three</td></tr>")
            sb.Append("<tr><td><b>Location</b></td><td>&nbsp;Chennai</td></tr>")
            sb.Append("<tr><td><b>Email</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
    Button Click event used for exporting to required format

        Private Sub btnExport_Click(ByVal sender As System.ObjectByVal 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)
            'Appendg CSS file
            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
  • 相关阅读:
    4月4日 python学习总结 os pickle logging
    4月3日 python学习总结
    4月2日 python学习总结
    【Vue】vue递归组件实现多级列表
    用原生html与js写一个dialog
    【Vue】filters过滤器中不能使用this的解决方案
    【Vue】Vue中data重置问题
    【Vue】Vue渲染模板时怎么保留模板中的HTML注释
    【Vue】在 Vue 中使用 JSX
    【Vue】在.vue文件中style是必须的吗?那script是必须的吗?为什么?——函数式组件
  • 原文地址:https://www.cnblogs.com/Isabella/p/2679843.html
Copyright © 2020-2023  润新知