java 自带导出excel_4.java项目页面导出excel功能

用的是SSM框架,字段根据自己的业务需求改

1.前台页面

导出

/*导出按钮提交*/

function downloadExcel(){

$("#dynamicDownload").submit();

}

2.后台相关代码

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

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

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

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

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

/**

* 导出考勤记录

* @param request

* @param response

* @param model

*/

@RequestMapping(value="downloadExcel")

public void downLoadExcel(HttpServletRequest request,HttpServletResponse response,Model model){

try{

//1-查出要导出的数据

String user_id = request.getSession().getAttribute("user_id").toString();//获取保存登陆信息的员工id

HashMap paramMap = new HashMap();

String date_start1 = request.getParameter("inpstart");

String date_end1 = request.getParameter("inpend");

String userORname1 = request.getParameter("userORname");

String PART_NAME1 = request.getParameter("dId");

paramMap.put("date_start", date_start1);

paramMap.put("date_end", date_end1);

paramMap.put("userORname", userORname1);

paramMap.put("PART_NAME", PART_NAME1);

List> sourceRecordList=sourceRecordService.selectSourceRecordNotpage(paramMap);

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

HSSFWorkbook wk = new HSSFWorkbook();

//第二步,创建一个sheet表对象,创建row对象,getExcelStyle1是一个创建模板的方法,最后面有

HSSFSheet sheet = getExcelStyle1(wk,"考勤信息表");

HSSFRow row;

HSSFCellStyle style = wk.createCellStyle();

HSSFFont font = wk.createFont();

font.setFontName("微软雅黑");

font.setFontHeightInPoints((short)15);

style.setFont(font);

style.setAlignment(HSSFCellStyle.ALIGN_CENTER);

//第三步,查询出表内容放到map中

SimpleDateFormat sdf_out = new SimpleDateFormat("yyyyMMdd");

String time_out = sdf_out.format(new Date());

String srcPath=request.getSession().getServletContext().getRealPath("")+"/考勤信息"+time_out+".xls";//设置将excel数据上传至服务器的路径

for(int i=0;i

row=sheet.createRow(i+1);//从第二行还是导入数据

String USER_ID = sourceRecordList.get(i).get("USER_ID").toString();//查询列表中获取所需字段数据

String USER_NAME = sourceRecordList.get(i).get("USER_NAME").toString();

String PART_NAME = sourceRecordList.get(i).get("PART_NAME").toString();

String ATTENDANCETEAM_NAME = sourceRecordList.get(i).get("ATTENDANCETEAM_NAME").toString();

String POST_NAME = sourceRecordList.get(i).get("POST_NAME").toString();

String ATTENDANCE_DATE = sourceRecordList.get(i).get("ATTENDANCE_DATE").toString();

String ATTENDANCE_TIME = sourceRecordList.get(i).get("ATTENDANCE_TIME").toString();

String EQUIPMENT_ADDRESS = sourceRecordList.get(i).get("EQUIPMENT_ADDRESS").toString();

if(USER_ID !=null){

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

}else{

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

}

if(USER_NAME !=null){

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

}else{

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

}

if(PART_NAME !=null){

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

}else{

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

}

if(ATTENDANCETEAM_NAME !=null){

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

}else{

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

}

if(POST_NAME !=null){

row.createCell((short)4).setCellValue(POST_NAME);

}else{

row.createCell((short)4).setCellValue("");

}

if(ATTENDANCE_DATE !=null){

row.createCell((short)5).setCellValue(ATTENDANCE_DATE);

}else{

row.createCell((short)5).setCellValue("");

}

if(ATTENDANCE_TIME !=null){

row.createCell((short)6).setCellValue(ATTENDANCE_TIME);

}else{

row.createCell((short)6).setCellValue("");

}

if(EQUIPMENT_ADDRESS !=null){

row.createCell((short)7).setCellValue(EQUIPMENT_ADDRESS);

}else{

row.createCell((short)7).setCellValue("");

}

}

try {

FileOutputStream fout = new FileOutputStream(srcPath);//创建一个服务器管道地址

wk.write(fout);//把excel数据写到服务器中

//读服务器中的数据

File exportFile = new File(srcPath);

FileInputStream fs=null;

//告诉浏览器这次请求是一个下载的数据流

response.setContentType("APPLICATION/OCTET-STREAM");

fs=new FileInputStream(exportFile);

//ExportUtil是一个下载的工具类,后面会有

ExportUtil.download(response, fs, "考勤信息-"+time_out+".xls",null);

} catch (Exception e) {

e.printStackTrace();

}

}catch(Exception e){

e.printStackTrace();

}

}

}

/**

* 创建一个excel模板:里面有表头信息

*/

public HSSFSheet getExcelStyle1(HSSFWorkbook wk,String name){

HSSFSheet sheet = wk.createSheet(name);

//设置表的样式 新加一行

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

HSSFCellStyle style1 = wk.createCellStyle();

style1.setAlignment(HSSFCellStyle.ALIGN_CENTER);

HSSFFont font1 = wk.createFont();

font1.setFontName("微软雅黑");

font1.setFontHeightInPoints((short)12);

style1.setFont(font1);

row1.createCell((short)0).setCellValue("工号");

row1.createCell((short)1).setCellValue("姓名");

row1.createCell((short)2).setCellValue("部门");

row1.createCell((short)3).setCellValue("所属考勤组");

row1.createCell((short)4).setCellValue("岗位名称");

row1.createCell((short)5).setCellValue("日期");

row1.createCell((short)6).setCellValue("打卡时间");

row1.createCell((short)7).setCellValue("设备地址");

return sheet;

}

ExportUtil 下载的工具类

import java.io.BufferedInputStream;

import java.io.File;

import java.io.FileInputStream;

import java.io.IOException;

import java.io.InputStream;

import javax.servlet.http.HttpServletResponse;

import org.apache.commons.io.IOUtils;

import org.apache.commons.lang.StringUtils;

public class ExportUtil {

/**

* 导出文件

*

* @param response

* @param file

* 导出文件

* @param name

* @param contentType

* @throws IOException

*/

public static void download(HttpServletResponse response, File file,

String name, String contentType) throws IOException {

String fileName = StringUtils.isBlank(name) ? file.getName() : name;

download(response, new FileInputStream(file), fileName, contentType);

}

/**

* 下载数据/文件

*

* @param response

* HTTP输出

* @param inputStream

* 文件流

* @param fileName

* 文件名

* @param contentType

* ContentType in HTTP Header

* @throws IOException

* IO异常

*/

public static void download(HttpServletResponse response,

InputStream inputStream, String fileName, String contentType)

throws IOException {

response.setContentType(StringUtils.isEmpty(contentType) ? "application/octet-stream"

: contentType);

response.setHeader("Content-Disposition", "attachment;filename="

+ new String(fileName.getBytes("gbk"), "ISO-8859-1"));

response.setStatus(HttpServletResponse.SC_OK);

BufferedInputStream reader = null;

try {

reader = new BufferedInputStream(inputStream);

IOUtils.copy(reader, response.getOutputStream());

} finally {

if (reader != null) {

reader.close();

}

if (inputStream != null) {

inputStream.close();

}

}

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/529838.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php 运行外部程序_PHP在linux上执行外部命令的方法

目录:一、PHP中调用外部命令介绍二、关于安全问题三、关于超时问题四、关于PHP运行linux环境中命令出现的问题一、PHP中调用外部命令介绍在PHP中调用外部命令,可以用,1>调用专门函数、2>反引号、3>popen()函数打开进程,三…

php直播pk规则,直播源码中的主播PK功能是如何实现的

直播行业为赢得更广泛用户的青睐,自然要不断开发更有趣的玩法、模式,在直播源码中加入主播PK功能就是一种提高直播互动性、激发用户好胜心的方法,一方面这种方法可以吸引更多用户观看,增加主播的曝光率,另一方面它又能…

php中手机端ajax上拉加载更多,jQuery手机网页上拉加载更多

手机网页和PC网页都可以使用的上拉加载更多内容,其中LoadingDataFn自己改为ajax加载就可以了var page 1, //分页码off_on false, //分页开关(滚动加载方法 1 中用的)timers null; //定时器(滚动加载方法 2 中用的)//加载数据var LoadingDataFn function() {var …

phpcms上传php,phpcms如何上传视频

phpcms如何上传视频?phpcms-v9上传视频文件时的解决方案1.不建议直接在后台上传视频文件,因为视频文件一般都比较大,直接上传影响带宽;可先通过ftp工具将视频文件上传到指定目录,然后再后台引入视频文件的地址即可2.如…

护卫神怎么重启php,护卫神·主机大师如何开启php_opcache_护卫神

护卫神主机大师支持5.5至7.3这几个版本开启php_opcache扩展。一,先打开护卫神主机大师面板-常用操作-打开软件目录二,打开phpweb目录,找到要开启opcache的php版本,比如我这里要在php5.5中开启,进入php55目录&#xff0…

php 首页加背景图片,如何在页首添加一张背景图片

Navy主题如何在页首添加一张图片可以http://www.ikk.me/这样子顶部添加背景图片他的代码是【点击查看】回复内容:Navy主题如何在页首添加一张图片可以http://www.ikk.me/这样子顶部添加背景图片他的代码是【点击查看】看了下代码,就是给 section 加了个 …

php装箱,php兑现装箱算法

php实现装箱算法贪婪法是一种不追求最优解,只希望得到较为满意解的方法。贪婪法一般可以快速得到满意的解,因为它省去了为找最优解要穷尽所有可能而必须耗费的大量时间。贪婪法常以当前情况为基础作最优选择,而不考虑各种可能的整体情况&…

flash as3与后台php交互用户注册例子,as3与PHP后台交互2

怎么样,是不是也很方便的实现了as3和后台的数据传输?恩,现在我们的程序可以双向交互数据了,但这只是一些简单的数据,如果你要传输带有结构的数据,(熟悉as2的人都知道loadVars可以自动解析下载数据的结构)&a…

java 去除 quot,JAVA去除web页面传入后台的特殊字符工具类 | 学步园

package www.tmzskj.com.utils;import java.util.regex.Matcher;import java.util.regex.Pattern;import org.junit.Test;/*** 功能 过滤特殊字符,清除掉所有特殊字符* regEx 为要清除的字符* author admin**/public class StringFilterTest {public static String …

matlab傅里叶工具箱,matlab通信工具箱.pdf

matlab通信工具箱randerr 产生随机误码图样randint 产生均匀分布的随机整数信号源 randsrc 用预定义的字母表产生随机矩阵wgn 产生高斯噪声commsrc.pattern 结构模式生成句柄berawgn 非编码的AWGN 信道的误比特率bercoding 编码的AWGN 信道的误比特率berconfint 蒙特卡罗仿真下…

java迭代器cas,java提高篇(三十)-Iterator - Java 技术驿站-Java 技术驿站

迭代对于我们搞Java的来说绝对不陌生。我们常常使用JDK提供的迭代接口进行Java集合的迭代。Iterator iterator list.iterator();while(iterator.hasNext()){String string iterator.next();//do something}迭代其实我们可以简单地理解为遍历,是一个标准化遍历各类…

mysqldb mysql config,安装mysqldb python界面时找不到mysql_config

mySQLdb是一个用于mysql的python界面,但它不是mysql本身。 显然mySQLdb需要命令“mysql_config”,所以你需要先安装。你能否确认你是否通过从shell运行“mysql”来安装mysql本身? 这应该给你一个“mysql:command not found”以外的…

kfcm算法matlab实现,KFCM算法分析

function [center, U, obj_fcn] KFCMClust(data, cluster_n, kernel_b,options)% FCMClust.m 采用模糊C均值对数据集data聚为cluster_n类%% 用法:% 1. [center,U,obj_fcn] KFCMClust(Data,N_cluster,kernel_b,options);% 2. [center,U,obj_fcn] KFCMClus…

matlab中的terminator模块,2.2 Ground 及 Terminator模块

课时:117节课时长:20.1小时课级:中级提高simulink是matlab中的一种可视化仿真工具, 是一种基于matlab的框图设计环境,是实现动态系统建模、仿真和分析的一个软件包,被广泛应用于线性系统、非线性系统、数字…

matlab 柯西黎曼方程,【判断题】柯西-黎曼方程成立是函数解析的必要条件.

参考答案如下判断【判断题】核糖体的沉降系数等于大小亚基沉降系数的总和。题柯【其它】We ______________________________________ (投入到各项校园课外活动中) on campus.西黎【单选题】起动机与蓄电池的连接线蓄电池与车架的搭铁线则采用( )。 (2.0分)曼方【简答题】作业选…

取整函数php,php取整函数三个例子

本节内容:php取整函数用法1,php取整函数 ceil -- 取最大整数float ceil ( float value )返回不小于 value 的下一个整数,value 如果有小数部分则进一位。ceil() 返回的类型仍然是 float,因为 float 值的范围通常比 integer 要大。…

python执行过程打印,如何在pytest运行过程中看到正常的打印输出?

乔在接受的答案中提出了一个评论 ,他问道:有没有办法打印到控制台并捕获输出,以便它显示在junit报告中?在UNIX中,这通常被称为开球 。 理想情况下,开球而不是捕捉将是py.test默认。 非理想情况下&#xff0…

cfar恒虚警matlab实现,一种用于距离副瓣抑制的自适应恒虚警方法与流程

本发明涉及脉冲压缩雷达数字信号处理技术领域。背景技术:在传统的真空管体制雷达中,由于发射占空比受限,通过设计较低的雷达重复发射频率实现远距离的目标探测,但由于发射的是简单的脉冲调制波形,重复频率降低和脉宽加…

修改oracle数据连接数据库,如何修改oracle数据库的连接数

如何修改oracle数据库的连接数查询数据库当前进程的连接数:select count(*) from v$process;查看数据库当前会话的连接数:elect count(*) from v$session;查看数据库的并发连接数:select count(*) from v$session where statusACTIVE;查看当前…

oracle导出中文utf8乱码,ORACLE导入导出后发生中文乱码的原因及解决办法

从数据库服务器上使用exp导出时显示如下:[oraclekf15-1]:/users/oracle>$ exp username/passwdkf15-1/i1000 tablestable_name filetable_name_unix.dmp satisticsnone buffer1000000Export: Release 10.2.0.4.0 - Production on 星期四 8月 26 16:37:08 2010Cop…