第一步、导入依赖

    <!--生成excel文件--><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.9</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-examples</artifactId><version>3.9</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-excelant</artifactId><version>3.9</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>3.9</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml-schemas</artifactId><version>3.9</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-scratchpad</artifactId><version>3.9</version></dependency>  

第二步,编写实体类

public class Zhi {private String url;                 //地址private String Requestbody;         //请求体private String Responsebody;         //响应体@Overridepublic String toString() {return "Zhi{" +"url='" + url + '\'' +", Requestbody='" + Requestbody + '\'' +", Responsebody='" + Responsebody + '\'' +'}';}public String getUrl() {return url;}public void setUrl(String url) {this.url = url;}public String getRequestbody() {return Requestbody;}public void setRequestbody(String requestbody) {Requestbody = requestbody;}public String getResponsebody() {return Responsebody;}public void setResponsebody(String responsebody) {Responsebody = responsebody;}
}

  

第三步、编写表格生成工具


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;public class ExcelUtil {/*** 导出Excel* @param sheetName sheet名称* @param title 标题* @param values 内容* @param wb HSSFWorkbook对象* @return*/public static HSSFWorkbook getHSSFWorkbook(String sheetName,String []title,String [][]values, HSSFWorkbook wb){// 第一步,创建一个HSSFWorkbook,对应一个Excel文件if(wb == null){wb = new HSSFWorkbook();}// 第二步,在workbook中添加一个sheet,对应Excel文件中的sheetHSSFSheet sheet = wb.createSheet(sheetName);// 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制HSSFRow row = sheet.createRow(0);// 第四步,创建单元格,并设置值表头 设置表头居中HSSFCellStyle style = wb.createCellStyle();style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式//声明列对象HSSFCell cell = null;//创建标题for(int i=0;i<title.length;i++){cell = row.createCell(i);cell.setCellValue(title[i]);cell.setCellStyle(style);}//创建内容for(int i=0;i<values.length;i++){row = sheet.createRow(i + 1);for(int j=0;j<values[i].length;j++){//将内容按顺序赋给对应的列对象row.createCell(j).setCellValue(values[i][j]);}}return wb;}
}

  第四步、编写controller层

import cn.kgc.pojo.Account;
import cn.kgc.pojo.Zhi;
import cn.kgc.service.impl.ExcelUtil;
import cn.kgc.service.impl.SalaryServiceImpl;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.jsp.tagext.PageData;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;@Controller
@RequestMapping(value = "/report")
public class ReportFormController{//@Resource(name = "reportService")//private ReportManager reportService;@Resource(name = "aoo")SalaryServiceImpl salaryService;/*** 导出报表* @return*/@RequestMapping(value = "/export")@ResponseBodypublic void export(HttpServletRequest request, HttpServletResponse response) throws Exception {//获取数据List<Zhi> list = new ArrayList<Zhi>();Zhi zhi=null;/*生成随机数*/Random random = new Random();for(int i=0;i<100;i++){int a = (int)(random.nextInt(900))+100;zhi=new Zhi();zhi.setUrl("/NGCRMPF_GS_CGSHQGETFULLUSRINFO_POST");zhi.setRequestbody("{\"params\":{\"object\":\"ServiceNo:13919892"+a+"\"}}");zhi.setResponsebody("{\"rtnCode\":\"0\",\"rtnMsg\":\"成功!\",\"bean\":{},\"beans\":[],\"object\":\"0~success~0~75~0~正常~01~58元新飞享套餐~1~0931\"}");list.add(zhi);}//excel标题String[] title = {"请求地址","请求体","响应体"};//excel文件名String fileName = "学生信息表"+System.currentTimeMillis()+".xls";//sheet名String sheetName = "学生信息表";String [][] content = new String[list.size()][];for (int i = 0; i < list.size(); i++) {content[i] = new String[title.length];Zhi obj = list.get(i);content[i][0] = obj.getUrl()+"";content[i][1] = obj.getRequestbody()+"";content[i][2] = obj.getResponsebody()+"";}//创建HSSFWorkbookHSSFWorkbook wb = ExcelUtil.getHSSFWorkbook(sheetName, title, content, null);//响应到客户端try {this.setResponseHeader(response, fileName);OutputStream os = response.getOutputStream();wb.write(os);os.flush();os.close();} catch (Exception e) {e.printStackTrace();}}//发送响应流方法public void setResponseHeader(HttpServletResponse response, String fileName) {try {try {fileName = new String(fileName.getBytes(),"ISO8859-1");} catch (UnsupportedEncodingException e) {// TODO Auto-generated catch blocke.printStackTrace();}response.setContentType("application/octet-stream;charset=ISO8859-1");response.setHeader("Content-Disposition", "attachment;filename="+ fileName);response.addHeader("Pargam", "no-cache");response.addHeader("Cache-Control", "no-cache");} catch (Exception ex) {ex.printStackTrace();}}
}

  

wdqqqqqqqqqqqqqqq

  第五步 编写jsp部分 调用一下即可

<a href="${pageContext.request.contextPath}/report/export">导出Excel表格</a>

  

转载于:https://www.cnblogs.com/yxs98/p/11293719.html

java代码实现导出Excel表格、工具ssm框架、maven、idea相关推荐

  1. java web导出excel表格(SSM框架 )

    xml: <select id="selectList"   resultType="返回的类型_"> SELECT            r.*, ...

  2. java中poi导出Excel表格(前台流文件接收)

    java中poi导出Excel表格,前端以流的方式接收,而非直接生成文件再下载,解决多台服务器部署后,路径地址不统一导致的下载问题. 生成Excel示例图: 2.代码说明 ① 在上次的基础上增加了底部 ...

  3. java使用模板导出Excel表格

    java使用模板导出Excel表格 文章目录 java使用模板导出Excel表格 模板示例 一.引入依赖 二.使用步骤 1.添加工具类 2.导出Excel 模板示例 一.引入依赖 <depend ...

  4. 解决POI事件驱动模式读取不到Java代码创建的Excel表格数据问题

    场景 使用POI官网上的事件驱动模式的示例方法,读取单sheet单次创建的Excel表格文件(.xlsx),Microsoft Excel和WPS Excel创建的表格文件可以正常读取数据,但是jav ...

  5. java多表头导出excel表格_【每日一点】1. Java如何实现导出Excel单表头或多表头

    一.背景 在后台项目中,经常会遇到将呈现的内容导出到Excel的需求,通过都是导出单个表头的Excel文件,如果存在级联关系的情况下,也就需要导出多表头的场景.今天这篇文章就是分享导出Excel单表头 ...

  6. java导出excel float_【Java】导入导出Excel表格

    1.将excel导入到内存 1. 调用工作簿Workbook的静态方法getWorkbook(),获得工作簿Workbook对象 InputStream in = new FileInputStrea ...

  7. Java Annotation 应用 -- 导出Excel表格

    相关知识链接: Introspector(内省) POI 1.声明注解 package com.ciic.component.excel;import java.lang.annotation.Ele ...

  8. java io导出excel表格_Java IO 导入导出Excel表格

    1.将excel导入到内存 1. 调用工作簿Workbook的静态方法getWorkbook(),获得工作簿Workbook对象 InputStream in = new FileInputStrea ...

  9. Extjs 从grid中导出Excel表格。后台为C#(绝对好用)(按照自己的需求修改版本)...

    最近生成Excel表格,稍微得到一点新的体会,特此更新自己开发时候的版本. 开发工具:VS2005 数据库:oracle10.1 浏览器:firefox3.5.9 第一步,web层aspx文件 需要载 ...

最新文章

  1. C#中switch语句注意
  2. [转帖]C#执行SQL脚本,读取XML文件
  3. ifconfig,netstat 命令找不到解決办法
  4. LeetCode 1771. 由子序列构造的最长回文串的长度(最长回文子序)
  5. Qt笔记-Qt获取百度下拉推荐词
  6. JVM运行时内存分区
  7. 图象关于y轴对称是什么意思_关于新风系统的全热交换到底是什么意思?艾尔文技术解读篇...
  8. 矩阵论作业13,14,15讲
  9. c语言课外读书笔记谭浩强,谭浩强C语言读书笔记
  10. 最新wineQQ 完美解决方案
  11. svn 回退/更新/取消至某个版本命令详解
  12. fastadmin 自定义按钮 btn-ajax 执行成功后 自动刷新
  13. 16个经典面试问题回答思路
  14. 关于CFree5.0中设置支持C99模式
  15. 梅科尔工作室-孙溢博-鸿蒙笔记1
  16. MySQL无法启动并提示file could not be found的解决方法
  17. 根据身份证地址拆分省市区
  18. 为什么你的设计总是得不到有效的练习?进步都不大呢?
  19. 做程序员你需要明白这九件事
  20. 电子承兑汇票的状态有哪些

热门文章

  1. ajax传值给java_java+jquery+ajax+json实现传值
  2. Android项目实战(三十六):给背景加上阴影效果
  3. ./configure,make,make install的作用(转)
  4. 【cocos2d-x从c++到js】12:回调函数1——按键回调
  5. 在flask-sqlalchemy中使用max min avg方法
  6. 叮叮叮 重点之中的python必备英语单词(1)来啦!请记得查收
  7. mysql数据库写分页函数_mysql数据库写分页函数
  8. 小团队项目管理开源工具_超越指标:如何在当今的开源项目中以团队方式运作
  9. 开源 协作工具_城镇如何使用开源工具进行协作和管理大文件
  10. sci写作sci写作模板_有写作错误吗? bibisco简介