二、点击导出按钮创建excle写入内容后下载功能实现
/*涉及的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写入内容后下载功能实现的更多相关文章
- Winforn中使用FastReport实现点击导出按钮PDF预览并弹出另存为对话框
场景 FastReport安装包下载.安装.去除使用限制以及工具箱中添加控件: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...
- JAVA创建并写入内容到xlsx文件
首先需要在web项目中导入jxl.jar 包 //action中代码 public String downloadReport(){ String path = System.getPr ...
- python从命令窗口启动脚本 创建并写入内容到文件示例
写入到文件示例: #!/usr/bin/env python3 from math import exp, log, sqrt import re from datetime import date, ...
- 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 ...
- java创建文件写入内容,并实现下载该文件
public void getText(){ response.setHeader("Content-Disposition", "attachment;filename ...
- 消息队列写入内容后,读出来的自动包裹了<string>标签,自定义格式化器解决该issue
/// <summary> /// 该格式化器使输入即输出 /// </summary> public class StringFormatter : IMessageForm ...
- Java实现点击导出excel页面遮罩屏蔽,下载完成后解除遮罩
一.问题场景 最近在做数据统计功能,需求是导出大数据量的excel,时间间隔较长,大概需要十秒左右,点击导出后,页面没有做任何处理,用户也不知道是否正在导出:如果没有做交互上的限制,用户可以一直点击导 ...
- win32 htmlayout点击按钮创建新窗口,以及按钮图片样式
最近在做一个C++ win32的桌面图形程序,我不是C++程序员,做这个只是因为最近没什么java的活. windows api,之前接触的时候,还是大学,那时用这个开发打飞机游戏纯粹是娱乐.现在基本 ...
- 023医疗项目-模块二:药品目录的导入导出-从数据库中查出数据用XSSF导出excel并存放在虚拟目录最后下载(包括调试)
我们要实现的效果: 进入到这个页面后,输入要查询的条件,查询出药品表的数据,然后按下导出按钮 ,就会在服务器的一个目录下生成一个药品表的excel表格. 点击"导出"之后 ...
随机推荐
- python开发基础作业01:模拟登陆系统
随老男孩学习python mark 作业要求及提示:编写登录接口 ''' 练习程序:编写登录接口 1. 输入用户名和密码 2. 认证成功后显示欢迎信息 3. 输错三次后锁定 输入三次后退出,下次同样用 ...
- c# 调用c++sdk时结构体与byte数组互转
/// <summary> /// 由结构体转换为byte数组 /// </summary> public static byte[] StructureToByte<T ...
- 在Ubuntu_meta 16.04中设置默认Python3.5的命令
ubuntu_meta 默认是安装了python2.7 和python3.5两个版本 查看ubuntu的python版本,默认版本是python2.7 输入:python 直接执行这两个命令即可: s ...
- 一大波新款iPhone跟安卓厂商抢夺5G市场
据外媒最新报道称,苹果已经基本完成了今年iPhone的推新阵容,其发布的多款新机中,将涵盖399美元-1149美元的售价区间,特别是5G手机,起步价可能会很亲民,其目的在于进一步占据市场. 今年苹果将 ...
- Dart语言学习(十五) Dart函数方法
Dart函数方法可分为两类: 一.内置方法/函数: print(); 二.自定义方法: 自定义方法的基本格式: 返回类型 方法名称(参数1,参数2,...){ 方法体 return 返回值; } vo ...
- 07 DTFT
DTFT 连续时间傅里叶变换(CTFT) 连续时间傅里叶变换的定义为: \[ X(j\Omega)=\int_{-\infty}^{\infty}x_a(t)e^{-j\Omega t}dt \] 其 ...
- springMVC是如何实现参数封装和自动返回Json的
HTTP 请求和响应是基于文本的,意味着浏览器和服务器通过交换原始文本进行通信.但是,使用 Spring,controller 类中的方法返回纯 ‘String’ 类型和域模型(或其他 Java 内建 ...
- hdoj6703 2019 CCPC网络选拔赛 1002 array
题意 description You are given an array a1,a2,...,an(∀i∈[1,n],1≤ai≤n). Initially, each element of the ...
- Spring Boot Security JWT 整合实现前后端分离认证示例
前面两章节我们介绍了 Spring Boot Security 快速入门 和 Spring Boot JWT 快速入门,本章节使用 JWT 和 Spring Boot Security 构件一个前后端 ...
- ES的基本概念
elasticsearch 的索引与文档是开发关注的视角:节点.集群.分片是运维关注的视角 elasticearch 文档的介绍 - elasticearch 是面向文档的,文档是所有可搜索数据的最小 ...