EXT Grid 导出Excel的另类实现,可以只导出Grid中显示的列

w_e_ibo:
http://t.cn/zjqEaRh  
http://weibo.com/liao27
先看效果图:
EXT Grid 导出Excel的另类实现,可以只导出Grid中显示的列_第1张图片


点击导出Excel按钮后,可以选择打开,或者保存,我这里选择直接打开:
EXT Grid 导出Excel的另类实现,可以只导出Grid中显示的列_第2张图片


打开的效果图:
EXT Grid 导出Excel的另类实现,可以只导出Grid中显示的列_第3张图片


然后设定隐藏列(密码,年龄):
EXT Grid 导出Excel的另类实现,可以只导出Grid中显示的列_第4张图片


然后再导出Excel:
EXT Grid 导出Excel的另类实现,可以只导出Grid中显示的列_第5张图片


这个Demo采用了的技术包括 :
Struts 1.2 + Spring 2.0 + Hibernate 3.2 + Ext 2.1 + MSSQL2000


说明:
   Demo导出方法是简单方便,但是如果你的计算机没有安装Office(Excel)则无法正常导出文件.Ext获得Grid中当前所有显示的列,通过window.open()弹出一个新的窗体来执行请求并把列名作为一个字符串参数传递,请求到了Action执行完转到一包含了

<%@ page language="java"  contentType="application/vnd.ms-excel; charset=GBK"%> 


的jsp页面进行遍历.页面执行完后会自动提示保存或者就打开文件.
下面是相关的jar包.spring 是 2.0,箭头所指的jar包为 Struts用来处理返回给EXT Grid 的 JSON数据.附件中有保留.

如果有更好的方法希望大家能够共享,多多交流学习.提提大家的看法或意见!

EXT Grid 导出Excel的另类实现,可以只导出Grid中显示的列_第6张图片

数据初始化:
先建立数据库 名称:test
然后运行org.lhq.test.ExportDB 类即可初始化数据

或者执行下面脚本(MSSQL2000)
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_user]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_user]
GO

CREATE TABLE [dbo].[t_user] (
	[userid] [int] IDENTITY (1, 1) NOT NULL ,
	[username] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
	[password] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
	[age] [int] NULL ,
	[phone] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL 
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[t_user] WITH NOCHECK ADD 
	 PRIMARY KEY  CLUSTERED 
	(
		[userid]
	)  ON [PRIMARY] 
GO

你可能感兴趣的:(spring,struts,Excel,ext,ide)