/*涉及的jar包
1)biframework.jar
用于实现分页功能
2)poi-3.7-20101029.jar:读取、创建、修改excle、word、ppt的Java API
Apache POI是创建和维护操作各种符合Office Open XML(OOXML)标准和微软的OLE复合文档格式(OLE2)的Java API。
用它可以使用Java读取和创建,修改MS Excel文件.而且,还可以使用Java读取和创建MS Word和MSPowerPoint文件。
Apache POI 提供Java操作Excel解决方案(适用于Excel97-2008)
HSSF:是POI工程对Excel 97(-2007)(.xls)文件操作的纯Java实现。
XSSF:是POI工程对Excel 2007 OOXML (.xlsx)文件操作的纯Java实现。
HWPF:提供读写Microsoft Word DOC格式档案的功能。
HSLF:提供读写Microsoft PowerPoint格式档案的功能。
HDGF:提供读Microsoft Visio格式档案的功能。
HPBF:提供读Microsoft Publisher格式档案的功能。
HSMF:提供读Microsoft Outlook格式档案的功能。
*/
1、查询结果导出到excle功能实现
<input type="button" value="数据导出" onclick="monitRulesExportexcel()"/>
2、js函数

function monitRulesExportexcel() {
var ruleDeclaration =document.getElementById("ruleDeclaration").value;// 规则说明
var dealType = document.getElementById("dealType").value;// 类型
var url= document.getElementById("monitRulesListFrom").action = "monitRulesAction.do?action=exportExcel&ruleDeclaration="
+ ruleDeclaration
+ "&dealType="
+ dealType;
document.getElementById("monitRulesListFrom").submit();
}

3、MonitRulesAction中的exportExcel方法

public ModelAndView exportExcel (HttpServletRequest request,
HttpServletResponse response,Object obj) throws Exception{
response.setContentType("text/html;UTF-8");
response.setCharacterEncoding("UTF-8");
request.setCharacterEncoding("GBK");
Paper paper = new Paper() ;
String pageDirection = Tools.nulltostring((String) request.getParameter("pageDirection")) ;
String currentPage = Tools.nulltostring((String) request.getParameter("currentPage"));
ruleDeclaration=Tools.nulltostring(request.getParameter("ruleDeclaration"));
dealType = Tools.nulltostring(request.getParameter("dealType")); Map map=new HashMap();
map.put("ruleDeclaration", ruleDeclaration);
map.put("dealType", dealType);
map.put("ruleDeclaration", ruleDeclaration);
map.put("dealType", dealType); List<Map<String,Object>> monitRulesList=service.getMonitRulesDataList(map,paper, currentPage,pageDirection, 5);
System.out.println(monitRulesList.size());
String[] titles=new String[]{"规则编码","金额","次数","统计天数","规则说明","类型","特征","标识"};
//创建名称为:excle文件对象并设定该excle的sheet页对象名为“监测规则数据”
HSSFWorkbook book=ExportExcel.creatWorkBook("监测规则数据");
//获取"可疑交易监测规则数据"sheet对象
HSSFSheet sheet=book.getSheet("监测规则数据"); //创建表头行
HSSFRow row0 = sheet.createRow(0);
//创建表头样式
HSSFCellStyle titletyle=ExportExcel.creatTitleStyle(book);
//给excle中第一行写入:列明信息
for (int i = 0; i < titles.length; i++) {
//createCell:创建单元格
HSSFCell cell = row0.createCell(i);//创建第一行
cell.setCellValue(titles[i]);
cell.setCellStyle(titletyle);
}
//设置表头:所占行和列数信息
for (int i = 0; i <titles.length; i++) {
ExportExcel.mergeCell(sheet, 0, 1, i, i);//起始行、结束行、起始列、结束列
}
ExportExcel.exportExcelForSupplier(response, monitRulesList,MonitRulesExportBean.class,sheet.getSheetName(),book,2);
return null;
}

4、调用生成excle的工具类:ExportExcle.java

import java.io.BufferedOutputStream;
import java.io.File;
import java.io.OutputStream;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
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.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.util.CellRangeAddress; /**
* Excel 导出公共类
*/
public class ExportExcel {
//创建一个WOOKBOOK &SHEET
public static HSSFWorkbook creatWorkBook(String filename){
HSSFWorkbook workbook = new HSSFWorkbook();//创建Excel文件
HSSFSheet sheet = workbook.createSheet(filename);//创建Excel的一个sheet return workbook;
}
//单元格样式
public static HSSFCellStyle creatCenterStyle(HSSFWorkbook workbook){
HSSFCellStyle centerstyle = workbook.createCellStyle();
centerstyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 上下居中
centerstyle.setWrapText(true);//设置自动换行
centerstyle.setFillBackgroundColor((short)13);
return centerstyle;
}
//表头样式
public static HSSFCellStyle creatTitleStyle(HSSFWorkbook workbook){
HSSFCellStyle titletyle = workbook.createCellStyle();
HSSFFont font = workbook.createFont();
font.setColor(HSSFColor.RED.index); titletyle.setFont(font);
titletyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
titletyle.setWrapText(true);
return titletyle; }
//导出方法
public static void exportExcelForSupplier(HttpServletResponse response,List ls,Class c,String sheetname,HSSFWorkbook workbook,int index)throws Exception{
String filePath = null;
File excelFilePath = null;
String excelFileName = null;
File tempExcelFile = null;
OutputStream ouputStream=null;
String fileName = "aaaa";
response.reset();// 清空输出流
response.setContentType("application vnd.ms-excel;charset=utf-8");
response.setHeader("Content-disposition", "attachment;filename=auditdate.xls");
HSSFSheet sheet=workbook.getSheet(sheetname);
HSSFCellStyle centerstyle=ExportExcel.creatCenterStyle(workbook);
Field[] fs = c.getDeclaredFields();
//resultList是列表集合
for (int i= 0; i<ls.size();i++) {
HSSFRow row = sheet.createRow(i+index);//创建行
row.setRowStyle(centerstyle);
Object kybean=ls.get(i);
for (int k = 0;k<fs.length;k++){
Field f = fs[k];
HSSFCell cells = row.createCell(k);
f.setAccessible(true);
cells.setCellValue((String)f.get(kybean));
cells.setCellStyle(centerstyle);
}
}
ouputStream = response.getOutputStream();
// BufferedOutputStream bo=new BufferedOutputStream(ouputStream,12);
// workbook.write(bo);
workbook.write(ouputStream);
ouputStream.flush();
ouputStream.close(); }
//合并单元格
public static int mergeCell(HSSFSheet sheet,int firstRow,int lastRow,int firstColumn,int lastColumn){
return sheet.addMergedRegion(new CellRangeAddress(firstRow,lastRow,firstColumn,lastColumn));
}
public static void main(String[] args) {
List<List<Object>> ls=new ArrayList<List<Object>>();
List<Object> list=new ArrayList<Object>();
list.add("sdfd");
list.add(111);
ls.add(list);
list.add(423423);
list.add(0.444);
ls.add(list);
Object[]obj=ls.get(0).toArray();
Object[]obj1=ls.get(1).toArray();
}
}

更多关于excle生成方法可参看博文

https://www.cnblogs.com/jiarui-zjb/p/9440797.html

https://www.cnblogs.com/jiarui-zjb/p/9439609.html

二、点击导出按钮创建excle写入内容后下载功能实现的更多相关文章

  1. Winforn中使用FastReport实现点击导出按钮PDF预览并弹出另存为对话框

    场景 FastReport安装包下载.安装.去除使用限制以及工具箱中添加控件: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...

  2. JAVA创建并写入内容到xlsx文件

    首先需要在web项目中导入jxl.jar 包 //action中代码 public String downloadReport(){        String path = System.getPr ...

  3. python从命令窗口启动脚本 创建并写入内容到文件示例

    写入到文件示例: #!/usr/bin/env python3 from math import exp, log, sqrt import re from datetime import date, ...

  4. python之创建文件写入内容

    https://www.cnblogs.com/evablogs/p/7096686.html 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 2 ...

  5. java创建文件写入内容,并实现下载该文件

    public void getText(){ response.setHeader("Content-Disposition", "attachment;filename ...

  6. 消息队列写入内容后,读出来的自动包裹了<string>标签,自定义格式化器解决该issue

    /// <summary> /// 该格式化器使输入即输出 /// </summary> public class StringFormatter : IMessageForm ...

  7. Java实现点击导出excel页面遮罩屏蔽,下载完成后解除遮罩

    一.问题场景 最近在做数据统计功能,需求是导出大数据量的excel,时间间隔较长,大概需要十秒左右,点击导出后,页面没有做任何处理,用户也不知道是否正在导出:如果没有做交互上的限制,用户可以一直点击导 ...

  8. win32 htmlayout点击按钮创建新窗口,以及按钮图片样式

    最近在做一个C++ win32的桌面图形程序,我不是C++程序员,做这个只是因为最近没什么java的活. windows api,之前接触的时候,还是大学,那时用这个开发打飞机游戏纯粹是娱乐.现在基本 ...

  9. 023医疗项目-模块二:药品目录的导入导出-从数据库中查出数据用XSSF导出excel并存放在虚拟目录最后下载(包括调试)

    我们要实现的效果:     进入到这个页面后,输入要查询的条件,查询出药品表的数据,然后按下导出按钮 ,就会在服务器的一个目录下生成一个药品表的excel表格.  点击"导出"之后 ...

随机推荐

  1. PHP的isset(),is_null,empty()你了解了没?

    这几个变量判断函数在PHP开发中用的其实挺多的,而且粗看上去都差不多,但其实还是有不少的区别的,如果搞不清楚,也许就会遗留一些潜在的bug, 包括我自已也遇到过这样的坑,比如有一次我就遇到过用empt ...

  2. 【代码学习】PYTHON 异常处理

    一.什么是异常 在程序执行过程中可能会影响程序的正常执行,一般情况下,在python无法正常处理程序时就会发生一个异常 当python脚本发生异常时我们需要捕获处理他,否则程序会终止执行 二.异常处理 ...

  3. Educational Codeforces Round 82 B. National Project

    Your company was appointed to lay new asphalt on the highway of length nn. You know that every day y ...

  4. 电源适配器DC插头规格

    电源适配器 DC 插头的内径外径规格有 (单位为 MM) :2.0*0.72.35*0.72.35*1.12.5*0.73.5*1.13.5*1.354.0*1.75.5*2.15.5*2.54.75 ...

  5. Android基础 -- Activity之间传递数据(bitmap和map对象)

    原文:http://blog.csdn.net/xueerfei008/article/details/23046341 做项目的时候需要用到在2个activity之间传递一些数据,之前做的都是些字符 ...

  6. 【读书笔记】图解HTTP完整流程

    1.1 使用 HTTP 协议访问 Web: 根据 Web 浏览器地址栏中指定的URL,从服务端获取资源等信息,在页面上展示. Web 使用一种 HTTP (超文本传输协议)作为规范,完成从客户端到服务 ...

  7. vs code插件大全

    一.HTML Snippets 超级使用且初级的H5代码片段以及提示 二.HTML CSS Support  让HTML标签上写class智能提示当前项目所支持的样式 三.Debugger for C ...

  8. 解决springmvc拦截器拦截静态资源的两种方式

    1.是采用<mvc:default-servlet-handler />,(一般Web应用服务器默认的Servlet名称是"default",所以这里我们激活Tomca ...

  9. django xadmin中logout页面在chrome浏览器中点击关闭页面无效

    问题现象 django xadmin中logout页面在chrome浏览器中点击关闭页面无效,无法关闭相应的页面 问题原因 高版本的chrome等浏览器不支持在window.colse()的写法 问题 ...

  10. Python - 同时运行两个以上的脚本

    在c.py中 import os os.system("python a.py") os.system("python b.py")