FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 3855|回复: 5
打印 上一主题 下一主题

对GetGridTableHtml的更改,导出更美观的Excel

[复制链接]
跳转到指定楼层
楼主
发表于 2013-5-23 10:12:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  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的每行设置了行高,设置了背影色,文字水平居中,并可根据不同的内容更改背景色,我导出的内容最后一列是日期格式的,如果日期不为空则更改背景色.导出后的效果如下图.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
沙发
发表于 2013-5-27 21:50:54 | 只看该作者
多谢分享
板凳
发表于 2013-6-4 18:29:43 | 只看该作者
{:soso_e179:}
地板
发表于 2013-8-14 11:26:45 | 只看该作者
这个具体是怎么用的?
5#
发表于 2013-8-20 18:53:35 | 只看该作者
是啊,怎么用的啊,是不是下面的代码?这代码会把当前页面关闭啊
Response.ClearContent();
            Response.AddHeader("content-disposition", "attachment; filename=MyExcelFile.xls");
            Response.ContentType = "application/excel";
            Response.Write(GetGridTableHtml(Grid1));
            Response.End();
6#
发表于 2014-1-16 09:53:46 | 只看该作者
Mark一下~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-6-5 05:33 , Processed in 0.046389 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表