FineUI 官方论坛

标题: 对GetGridTableHtml的更改,导出更美观的Excel [打印本页]

作者: 夜冰    时间: 2013-5-23 10:12
标题: 对GetGridTableHtml的更改,导出更美观的Excel
  1. Private Function GetGridTableHtml(ByVal grid As Grid) As String
  2.         Dim sb As New StringBuilder()
  3.         sb.Append("<table cellspacing=""0"" rules=""all"" border=""1"" style=""height:100%;width:100%;border-collapse:collapse;"">")
  4.         sb.Append("<tr class=""gvHeader"" >")
  5.         For Each column As GridColumn In grid.Columns
  6.             sb.AppendFormat("<td style=""font-size: 12px; background-color: #CCCCCC; line-height: 26px; text-align: center; vertical-align: middle;height:30px"">{0}</td>", column.HeaderText)
  7.         Next
  8.         sb.Append("</tr>")
  9.         For Each row As GridRow In grid.Rows
  10.             Dim rq = row.Values(row.Values.Length - 1)
  11.             If rq = "" Then
  12.                 sb.Append("<tr class=""gvRow"">")
  13.             Else
  14.                 sb.Append("<tr class=""gvRow"">")
  15.             End If

  16.             For Each value As Object In row.Values
  17.                 Dim html As String = value.ToString()
  18.                 If html.Contains("box-grid-static-checkbox") Then
  19.                     If html.Contains("box-grid-static-checkbox-uncheck") Then
  20.                         html = "×"
  21.                     Else
  22.                         html = "√"
  23.                     End If
  24.                 End If
  25.                 If html.Contains("<img") Then
  26.                     Dim prefix As String = Request.Url.AbsoluteUri.Replace(Request.Url.AbsolutePath, "")
  27.                     html = html.Replace("src=""", "src=""" & prefix)
  28.                 End If
  29.                 If rq = "" Then
  30.                     sb.AppendFormat("<td style=""font-size: 12px;line-height: 26px; text-align: center; vertical-align: middle;height:26px"">{0}</td>", html)
  31.                 Else
  32.                     sb.AppendFormat("<td style=""background-color:lightgreen;text-align: center; vertical-align: middle;height:26px;font-size: 12px;"">{0}</td>", html)
  33.                 End If

  34.             Next
  35.             sb.Append("</tr>")
  36.         Next
  37.         sb.Append("</table>")
  38.         Return sb.ToString()
  39.     End Function
复制代码
以上代码对导出excel的每行设置了行高,设置了背影色,文字水平居中,并可根据不同的内容更改背景色,我导出的内容最后一列是日期格式的,如果日期不为空则更改背景色.导出后的效果如下图.
[attach]2360[/attach]


作者: yygy    时间: 2013-5-27 21:50
多谢分享
作者: 舞柯庶    时间: 2013-6-4 18:29
{:soso_e179:}
作者: tom    时间: 2013-8-14 11:26
这个具体是怎么用的?
作者: delphi9    时间: 2013-8-20 18:53
是啊,怎么用的啊,是不是下面的代码?这代码会把当前页面关闭啊
Response.ClearContent();
            Response.AddHeader("content-disposition", "attachment; filename=MyExcelFile.xls");
            Response.ContentType = "application/excel";
            Response.Write(GetGridTableHtml(Grid1));
            Response.End();

作者: 水木山人    时间: 2014-1-16 09:53
Mark一下~




欢迎光临 FineUI 官方论坛 (https://fineui.com/bbs/) Powered by Discuz! X3.4