• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > asp.net+Ligerui实现grid导出Excel和Word的方法

asp.net+Ligerui实现grid导出Excel和Word的方法

作者:且行且思 字体:[增加 减小] 来源:互联网 时间:2017-05-11

且行且思通过本文主要向大家介绍了asp.net,asp net培训,asp和asp.net的区别,零基础学asp.net,c#和asp.net的区别等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例讲述了asp.net+Ligerui实现grid导出Excel和Word的方法。分享给大家供大家参考,具体如下:

下面采用的导EXCEL方法,适合不翻页的grid,而且无需再读一次数据库,对于翻页的grid来说,要导全部,当然后台要再读一次数据库,这种导EXCEL方法baidu一大堆,这里不重复

代码部分:

grid.htm:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title></title>
  <link href="../lib/ligerUI/skins/Aqua/css/ligerui-all.css" rel="stylesheet" type="text/css" />
  <link href="../lib/ligerUI/skins/ligerui-icons.css" rel="stylesheet" type="text/css" />
  <script src="../lib/jquery/jquery-1.3.2.min.js" type="text/javascript"></script>
  <script src="../lib/ligerUI/js/plugins/ligerGrid.js" type="text/javascript"></script>
  <script src="../lib/ligerUI/js/plugins/ligerToolBar.js" type="text/javascript"></script>
  <script src="../lib/ligerUI/js/plugins/ligerDialog.js" type="text/javascript"></script>
  <script src="AllProductData.js" type="text/javascript"></script>
  <script type="text/javascript">
    $(function () {
      $("#toptoolbar").ligerToolBar({ items: [
            {text: '导出Excel',id:'excel',icon:'print',click:itemclick},
            {text: '导出Word' ,id:'word',icon:'print',click:itemclick}
          ]
      });
      $("#maingrid").ligerGrid({
        columns: [
          { display: '主键', name: 'ProductID', type: 'int', totalSummary:{type: 'count'}},
          { display: '产品名', name: 'ProductName', align: 'left', width: 200 },
          { display: '单价', name: 'UnitPrice', align: 'right', type:'float',totalSummary:{render: function (suminf, column, cell){return '<div>最大值:' + suminf.max + '</div>';},align: 'left'}},
          { display: '仓库数量', name: 'UnitsInStock', align: 'right', type: 'float',totalSummary:{type: 'sum'}}
        ],
        dataAction: 'local',
        data: AllProductData, sortName: 'ProductID',
        showTitle: false, totalRender: f_totalRender,
        width: '100%', height: '100%',heightDiff:-10
      });
      $("#pageloading").hide();
    });
    function f_totalRender(data, currentPageData)
    {
      return "总仓库数量:"+data.UnitsInStockTotal;
    }
    function itemclick(item)
    {
      grid = $("#maingrid").ligerGetGridManager();
      if(item.id)
      {
        switch (item.id)
        {
          case "excel":$.ligerDialog.open({url: "../service/print.aspx?exporttype=xls"});return;
          case "word":$.ligerDialog.open({url: "../service/print.aspx?exporttype=doc"});return;
        }
      }
    }
  </script>
</head>
<body style="padding:0px; overflow:hidden; height:100% ">
  <div id="toptoolbar"></div>
  <div id="maingrid" style="margin:0; padding:0"></div>
  <div style="display:none;"></div>
</body>
</html>

</div>

导出页面print.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="print.aspx.cs" Inherits="example" EnableEventValidation = "false" ValidateRequest="false" %>
<html>
<head>
  <title></title>
  <link href="../lib/ligerUI/skins/aqua/css/ligerui-all.css" rel="stylesheet" type="text/css" />
  <script src="../lib/jquery/jquery-1.3.2.min.js" type="text/javascript"></script>
  <script src="../lib/ligerUI1.1.0/js/ligerui.min.js" type="text/javascript"></script>
  <script type="text/javascript">
    function GetQueryString(name)
    {
      var reg = new RegExp("(^|&)"+name+"=([^&]*)(&|$)");
      var r= window.location.search.substr(1).match(reg);
      if (r!=null) return unescape(r[2]);return null;
    }
    function gethtml(g)
    {
      parent.$(".l-grid-header-table",g).attr("border","1");
      parent.$(".l-grid-body-table",g).attr("border","1");
      $("#hf").val(
            parent.$(".l-grid-header",g).html()+       //这里把表头捞出来
            parent.$(".l-grid-body-inner",g).html()+     //表身,具体数据
            parent.$(".l-panel-bar-total",g).html()+"<br/>"+ //这是全局汇总,1.1.0版本新添加的
            parent.$(".l-bar-text",g).html()         //这是翻页讯息
            );
      parent.$(".l-grid-header-table",g).attr("border","0");
      parent.$(".l-grid-body-table",g).attr("border","0");
     // parent.$(".l-grid-header-table",g).removeAttr("border");
     // parent.$(".l-grid-body-table",g).removeAttr("border");
    }
    function init()
    {
      if (GetQueryString("exporttype")=="xls")
      {
        document.getElementById("btnxls").click();
      }
      else
      {
        document.getElementById("btndoc").click();
      }
      setTimeout(function ()
      {
        parent.$.ligerDialog.close();
      }, 3000);
    }
  </script>
</head>
<body style="padding:20px" onload="init()">
  <form id="form1" runat="server">
  导出中...
  <div style="visibility:hidden">
  <asp:Button ID="btnxls" runat="server" Text="导出Excel" onclick="Button1_Click" OnClientClick="gethtml('#maingrid')"/>
  <asp:Button ID="btndoc" runat="server" Text="导出Word" onclick="Button2_Click" OnClientClick="gethtml('#maingrid')"/>
  </div>
  <asp:HiddenField ID="hf" runat="server" />
  </form>
</body>
</html>

</div>

print.aspx.cs

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
namespace service
{
  public partial class print : System.Web.UI.Page
  {
    protected void Page_Load(object sender, EventArgs e)
    {
      if (!IsPostBack)
      {
      }
    }
    void exportexcel()
    {
      Response.Clear();
      Response.Buffer = true;
      Response.Charset = "utf-8";
      Response.AppendHeader("Content-Disposition", "attachment;filename=tmp.xls");
      Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");
      Response.ContentType = "application/ms-excel";
      this.EnableViewState = false;
      System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
      System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
      oHtmlTextWriter.WriteLine(hf.Value);
      Response.Write(oStringWriter.ToString());
      Response.End();
    }
    void exportword()
    {
      Response.Clear();
      Response.Buffer = true;
      Response.Charset = "utf-8";
      Response.AppendHeader("Content-Disposition", "attachment;filename=tmp.doc");
      Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");
      Response.ContentType = "application/ms-word";
      this.EnableViewState = false;
      System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
      System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
      oHtmlTextWriter.WriteLine(hf.Value);
      Response.Write(oStringWriter.ToString());
      Response.End();
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
      exportexcel();
    }
    protected void Button2_Click(object sender, EventArgs e)
    {
      exportword();
    }
  }
}

</div>

原理:在点导出按钮的时候,弹一个print.aspx页面,这个页面把grid的html传给自己一个叫hf的hidden里面,然后后台response输出这个html

更多关于as

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Asp.net SignalR 应用并实现群聊功能 开源代码
  • asp.net动态更新
  • asp.net利用母版制作页脚效果
  • Asp.Net服务器发送HTTP标头后无法设置内容类型的问题解决
  • 使用asp.net mvc,boostrap及knockout.js开发微信自定义菜单编辑工具(推荐)
  • 详解ASP.NET MVC 常用扩展点:过滤器、模型绑定
  • ASP.NET Core发送邮件的方法
  • 在ASP.NET Core 中发送邮件的实现方法(必看篇)
  • ASP.NET MVC从视图传参到控制器的几种形式
  • Asp.net core WebApi 使用Swagger生成帮助页实例

相关文章

  • 2017-05-11实例解析Java中的synchronized关键字与线程安全问题
  • 2017-05-11C#实现上传照片到物理路径,并且将地址保存到数据库的小例子
  • 2017-05-11ASP.NET页面间的传值的几种方法
  • 2017-05-11asp.net IList查询数据后格式化数据再绑定控件
  • 2017-05-11Asp.net内置对象之Cookies(简介/属性方法/基本操作及实例)
  • 2017-05-11NET 弹出页面窗口选择返回值
  • 2017-05-11ASP.NET Core中使用默认MVC路由的配置
  • 2017-05-11解决.net framework 4.0环境下遇到版本不同编译不通过的方法详解
  • 2017-05-11ASP.NET中获取URL重写前的原始地址详解
  • 2017-05-11asp.net后台弹窗如何实现

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • asp.net 预防SQL注入攻击之我见
    • ASP.NET下母版页和内容页中的事件发生顺序整理
    • 记录游客页面访问IP的简易实现代码 (asp.net+txt)
    • ASP.NET技巧:数据岛出到Excel最为简易的方法
    • .net log4的详细用法
    • ASP.NET 页面刷新和定时跳转代码整理
    • asp.net用Zxing库实现条形码输出的具体实现
    • TreeView无刷新获取text及value实现代码
    • .NET中STAThread的使用详解
    • ASP.NET中实现把form表单元素转为实体对象或集合

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有