文档章节

Struts2+ExtJS+poi导出excel

风灬云
 风灬云
发布于 2015/04/22 20:39
字数 647
阅读 247
收藏 9
点赞 0
评论 0

首先生成Excel

import java.io.IOException;

import java.io.OutputStream;

import javax.servlet.http.HttpServletResponse;

import org.apache.poi.hssf.usermodel.HSSFCell;

import org.apache.poi.hssf.usermodel.HSSFCellStyle;

import org.apache.poi.hssf.usermodel.HSSFRow;

import org.apache.poi.hssf.usermodel.HSSFSheet;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import org.apache.struts2.ServletActionContext;

import com.acbee.model.User;


//生成Excel并输出的类

public class CreateExcel {

@SuppressWarnings("deprecation")

public String Create()

{

    String filename="student";

    // 第一步,创建一个webbook,对应一个Excel文件  

        HSSFWorkbook wb = new HSSFWorkbook();  


        // 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet  

        HSSFSheet sheet = wb.createSheet("学生表一");  


        // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short  

        HSSFRow row = sheet.createRow((int) 0);  


        // 第四步,创建单元格,并设置值表头 设置表头居中  

        HSSFCellStyle style = wb.createCellStyle();  

        style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式  

        HSSFCell cell = row.createCell((short) 0);  

        cell.setCellValue("学号");  

        cell.setCellStyle(style);  

        cell = row.createCell((short) 1);  

        cell.setCellValue("姓名");  

        cell.setCellStyle(style);  

        cell = row.createCell((short) 2);  

        cell.setCellValue("年龄");  

        cell.setCellStyle(style);  

        cell = row.createCell((short) 3);  

        cell.setCellValue("生日");  

        cell.setCellStyle(style);  


        // 第五步,写入实体数据 实际应用中这些数据从数据库得到,  

        //List list = CreateSimpleExcelToDisk.getStudent();  

//        for (int i = 0; i < list.size(); i++)  

//        {  

//            row = sheet.createRow((int) i + 1);  

//            User user = (User) list.get(i);  

//            row.createCell((short) 0).setCellValue((double) user.getUser_pk());  

//            row.createCell((short) 1).setCellValue(user.getUser_name());  

//            row.createCell((short) 2).setCellValue(user.getUser_number());  

//            cell = row.createCell((short) 3);  

//            cell.setCellValue(new SimpleDateFormat("yyyy-mm-dd").format(user.getUser_birthday()));  

//        }  


        for (int i = 0; i < 3; i++)  

        {  

            row = sheet.createRow((int) i + 1);  

            //User user = (User) list.get(i);  

            row.createCell((short) 0).setCellValue(1);  

            row.createCell((short) 1).setCellValue(2);  

            row.createCell((short) 2).setCellValue(3);  

            row.createCell((short) 3).setCellValue(3);  

        }  


        // 第六步,将文件通过 HttpServletResponse输出

            /*

* 下面的可以不用编写,直接拷贝

*/

HttpServletResponse response = null;// 创建一个HttpServletResponse对象

OutputStream out = null;// 创建一个输出流对象

try {

System.out.println("io");

response = ServletActionContext.getResponse();// 初始化HttpServletResponse对象

out = response.getOutputStream();//

response.setHeader("Content-disposition", "attachment; filename=" + filename+".xls");

                        //filename是下载的xls的名

response.setContentType("application/msexcel;charset=UTF-8");// 设置类型

response.setHeader("Pragma", "No-cache");// 设置头

response.setHeader("Cache-Control", "no-cache");// 设置头

response.setDateHeader("Expires", 0);// 设置日期头

wb.write(out);

out.flush();

wb.write(out);

} catch (IOException e) {

e.printStackTrace();

} finally {

if (out != null) {

System.out.println("out is close");

//out.close();

}

}

return null;

}

}


在Action中调用生成excel 的方法

CreateExcel excel=new CreateExcel();

public String export()

{

System.out.println("导出");

url=excel.Create();

//return SUCCESS;

System.out.println(url);

return null;//此处必须是null否则报错

}


ExtJs中的调用代码

//导出按钮的事件

var export_excel=function(btn)

{    

        //Ext.ajax省略

        //调用export.action导出excel

        //此处必须这种写法,不然无法弹出保存excel的框

window.location="export.action";

}



struts.xml中的配置

<package name="extjs" extends="json-default" namespace="/">

    <action name="export" class="userAction" method="export">

    <result type="json">

    </result>

    </action>

</package>

或者

<package name="default" namespace="/" extends="struts-default">

    <action name="export"  class="userAction" method="export">  

            <result name="success" type="stream">    

            </result>  

    </action>  

</package>

经验证,上述两种方式都可以,主要是在ExtJS中调用action时注意写法,就可以成功导出excel


© 著作权归作者所有

共有 人打赏支持
风灬云
粉丝 18
博文 91
码字总数 30310
作品 0
西宁
技术主管
基于 poi 的 Excel 操作组件--Excel4J

Excel4J 是基于 poi 的 excel 操作组件,大大减少代码量,提高开发效率。 基于注解 @ExcelField(title = "学号", order = 1)private Long id;@ExcelField(title = "姓名", order = 2)privat...

Crab2Died
2017/06/16
3.8K
8
Crab2Died/Excel4J

Excel4J v2.x 一. v2.x新特性 Excel读取支持部分类型转换了(如转为Integer,Long,Date(部分)等) v2.0.0之前只能全部内容转为String Excel支持非注解读取Excel内容了,内容存于对象内 现在支持导...

Crab2Died
2017/06/11
0
0
Java报表工具FineReport导出EXCEL的四种API

在实际的应用中会经常需要将数据导出成excel,导出的方式除原样导出还有分页导出、分页分sheet导出和大数据量导出。对于excel 2003版,由于限制了每个sheet的最大行数和列数,大数据量导出时...

九月你好123
2016/03/15
1K
4
Excel 快捷导出导入工具--exportExcel

exportExcel 让 excel 导出导入更简单,告别繁琐的 excel 导出,实现自定义导出,模板导出,基于注解导出简单方便。 1、 新建excel导出。 Excel excel = new Excel(); //新建excelExcelSheet...

Jeff_Regan
2017/08/15
1K
5
JeeSite|Excel导入导出

在各种管理系统中,数据的导入导出是经常用到的功能,通常导入导出以Excel、CSV格式居多。JeeSite提供了很好的Excel的导入导出功能,隐藏了底层的很多实现,通过简单的套路式步骤即可完成数据...

秋风似刀
2017/11/15
0
0
Javaweb 导出excel

修改Excel导出方式: A.添加了Annotation定义导出标题及属性(有些多余的感觉,为了用Annotation而添加Annotation)。 B.保留原来用数组列表保存标题及属性。 C.添加ajax 导出脚本。 1.Exce...

ricoc
2016/05/24
30
0
php导入导出excel实例

这里实现的PHP导入导出excel功能用到的是开源PHPExcel,执行下面的操作之前请先下载该类库文件,官方网站:http://www.codeplex.com/PHPExcel,官网案例代码很多,导出pdf什么的都有,这里主...

card123
2015/09/24
359
0
Eran/ExcelToJson

#Excel2Json 概述 Excel2Json 是将Excel表格直接导出成JSON文件格式的一个小工具 使用方法 下载Release文件夹下所有文件,拷贝到本地目录 比如 D:ToolsExcel2Json 目录 修改Run.bat文件 : Ex...

Eran
2015/11/26
0
0
jeecg-easypoi-2.0.3 版本发布

EasyPOI是在jeecg的poi模块基础上,继续开发独立出来的,可以说是2.0版本,EasyPoi封装的目的和jeecg一致,争取让大家write less do more ,在这个思路上easypoi可以让大家几乎不写代码的情况下完...

Jeecg
2014/09/04
5.1K
11
EasyPoi 3.0.2 版本发布,Excel 和 Word 简易工具类

Excel 和 Word 简易工具类发布了3.0.2 版本,小版本升级,更新如下: word 遍历样式复制 导入校验返回增强 导入校验,校验组参数 Excel--html图标不在单独生成 Excel模板导出加入了图片支持 修复...

Anotherjueyue
2017/09/28
922
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

前端基础

1. get请求传参长度的误区 误区:我们经常说get请求参数的大小存在限制,而post请求的参数大小是无限制的。 实际上HTTP 协议从未规定 GET/POST 的请求长度限制是多少。对get请求参数的限制是...

wenxingjun
今天
0
0
Android 复制和粘贴功能

做了一回搬运工,原文地址:https://blog.csdn.net/kennethyo/article/details/76602765 Android 复制和粘贴功能,需要调用系统服务ClipboardManager来实现。 ClipboardManager mClipboardM...

她叫我小渝
今天
0
0
拦截SQLSERVER的SSL加密通道替换传输过程中的用户名密码实现运维审计(一)

工作准备 •一台SQLSERVER 2005/SQLSERVER 2008服务 •SQLSERVER jdbc驱动程序 •Java开发环境eclipse + jdk1.8 •java反编译工具JD-Core 反编译JDBC分析SQLSERVER客户端与服务器通信原理 SQ...

紅顏為君笑
今天
6
0
jQuery零基础入门——(六)修改DOM结构

《jQuery零基础入门》系列博文是在廖雪峰老师的博文基础上,可能补充了个人的理解和日常遇到的点,用我的理解表述出来,主干出处来自廖雪峰老师的技术分享。 在《零基础入门JavaScript》的时...

JandenMa
今天
0
0
linux mint 1.9 qq 安装

转: https://www.jianshu.com/p/cdc3d03c144d 1. 下载 qq 轻聊版,可在百度搜索后下载 QQ7.9Light.exe 2. 去wine的官网(https://wiki.winehq.org/Ubuntu) 安装 wine . 提醒网页可以切换成中...

Canaan_
今天
0
0
PHP后台运行命令并管理运行程序

php后台运行命令并管理后台运行程序 class ProcessModel{ private $pid; private $command; private $resultToFile = ''; public function __construct($cl=false){......

colin_86
今天
1
0
数据结构与算法4

在此程序中,HighArray类中的find()方法用数据项的值作为参数传递,它的返回值决定是否找到此数据项。 insert()方法向数组下一个空位置放置一个新的数据项。一个名为nElems的字段跟踪记录着...

沉迷于编程的小菜菜
今天
1
1
fiddler安装和基本使用以及代理设置

项目需求 由于开发过程中客户端和服务器数据交互非常频繁,有时候服务端需要知道客户端调用接口传了哪些参数过来,这个时候就需要一个工具可以监听这些接口请求参数,已经接口的响应的数据,这种...

银装素裹
今天
0
0
Python分析《我不是药神》豆瓣评论

读取 Mongo 中的短评数据,进行中文分词 对分词结果取 Top50 生成词云 生成词云效果 看来网上关于 我不是药神 vs 达拉斯 的争论很热啊。关于词频统计就这些,代码中也会完成一些其它的分析任...

猫咪编程
今天
0
0
虚拟机怎么安装vmware tools

https://blog.csdn.net/tjcwt2011/article/details/72638977

AndyZhouX
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部