public void exportExcel(Long activityId, HttpServletResponse response) throws IOException

{

// 获取统计报表信息

List productInfoList = reportDao.queryStatisticReport(activityId);

// 创建一个工作薄

HSSFWorkbook workbook = new HSSFWorkbook();

// 创建一个工作表sheet

HSSFSheet sheet = workbook.createSheet("统计报表");

// 设置单元格每列的宽度

sheet.setColumnWidth(0, 50 * 256);

sheet.setColumnWidth(1, 50 * 256);

sheet.setColumnWidth(2, 10 * 256);

// 表格信息内容的样式

HSSFCellStyle style = workbook.createCellStyle();

// 水平居中

style.setAlignment(HorizontalAlignment.CENTER);

// 垂直居中

style.setVerticalAlignment(VerticalAlignment.CENTER);

// 行数

int rowCount = 0;

// 第一行的标题行

HSSFRow row0 = sheet.createRow(rowCount++);

// 列表格

HSSFCell cell_title = row0.createCell(0);

cell_title.setCellValue("统计报表");

// 标题样式

HSSFCellStyle style_title = workbook.createCellStyle();

style_title.setAlignment(HorizontalAlignment.CENTER);

style_title.setVerticalAlignment(VerticalAlignment.CENTER);

//设置字体样式

HSSFFont font = workbook.createFont();

//字号

font.setFontHeightInPoints((short) 16);

// 红色字体

font.setColor(HSSFFont.COLOR_RED);

style_title.setFont(font);

cell_title.setCellStyle(style_title);

sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 2));

// 第二行的表头

HSSFRow row1 = sheet.createRow(rowCount++);

// 表头样式

HSSFCellStyle style_header = workbook.createCellStyle();

style_header.setAlignment(HorizontalAlignment.CENTER);

style_header.setVerticalAlignment(VerticalAlignment.CENTER);

style_header.setFillForegroundColor(new HSSFColor.SKY_BLUE().getIndex());

style_header.setFillPattern(FillPatternType.SOLID_FOREGROUND);

// 列表格

HSSFCell cell_header0 = row1.createCell(0);

cell_header0.setCellValue("展示商品名称");

cell_header0.setCellStyle(style_header);

HSSFCell cell_header1 = row1.createCell(1);

cell_header1.setCellValue("SKU商品名称");

cell_header1.setCellStyle(style_header);

HSSFCell cell_header2 = row1.createCell(2);

cell_header2.setCellValue("数量");

cell_header2.setCellStyle(style_header);

if (!StringUtils.isEmpty(productInfoList))

{

for (ProductInfo productInfo : productInfoList)

{

List sbomInfoList = productInfo.getSbomInfoList();

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

{

// 行表格

HSSFRow row = sheet.createRow(rowCount);

SbomInfo sbomInfo = sbomInfoList.get(i);

if (i == 0)

{

// 列表格

HSSFCell cell0 = row.createCell(0);

cell0.setCellValue(productInfo.getDisPrdName());

cell0.setCellStyle(style);

// 含有2个以上数据的,则需要合并单元格

if (sbomInfoList.size() > 1)

{

sheet.addMergedRegion(new CellRangeAddress(rowCount, rowCount + sbomInfoList.size() - 1, 0, 0));

}

}

// 列表格

HSSFCell cell1 = row.createCell(1);

cell1.setCellValue(sbomInfo.getSbomName());

cell1.setCellStyle(style);

// 列表格

HSSFCell cell2 = row.createCell(2);

cell2.setCellValue(sbomInfo.getNumber());

cell2.setCellStyle(style);

// 行数增1

rowCount = rowCount + 1;

}

}

}

// 设置文件名

String fileName = "统计报表.xls";

response.setContentType("application/vnd.ms-excel");

response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));

response.setHeader("Pragma", "No-cache");

OutputStream outputStream = response.getOutputStream();

workbook.write(outputStream);

outputStream.flush();

outputStream.close();

workbook.close();

}

导出Excel表格:

java excel导出功能_java中的Excel导出功能相关推荐

  1. java excel 中文乱码_java中读取excel文件中字符串乱码问题解决方法

    以前的时候发现直接java读取一个excel文件输出里面的字符串会乱码,中文字符不会乱码,但是遇到英文的时候输出会乱码.这个问题太奇怪了. 我的表格名字为Shirley.xls. 我曾经直接读取exc ...

  2. java消息提示代码_JAVA中实现消息提示功能代码 .

    注(在MyEclipse中新建一个jsp文件然后把代码复制到当中即可!) String path = request.getContextPath(); String basePath = reque ...

  3. Java EasyExcel在Web网站中读写Excel的方法及示例代码

    使用EasyExcel可以更容易简单在Web网站中读写Excel,本文主要介绍在Java Web网站中读写Excel方法及示例代码. 原文地址:Java EasyExcel在Web网站中读写Excel ...

  4. java excel表格导入_java中excel表格导入实例

    展开全部 需要32313133353236313431303231363533e59b9ee7ad9431333264623165导入jxl.jar (在网上可以下载,然后放到lib文件夹中) 开放分 ...

  5. java excel 模板 替换_JAVA POI替换EXCEL模板中自定义标签(XLSX版本)满足替换多个SHEET中自定义标签...

    个人说明:为了简单实现导出数据较少的EXCEL(根据自定义书签模板) 一.替换Excel表格标签方法 ``` /** * 替换Excel模板文件内容 * @param map * 需要替换的标签建筑队 ...

  6. Java写一个excel工具类_Java中Excel写操作工具类--Java免费学习网

    核心提示:package com.common.excel;import com.common.excel.exception.WriteExcelException;import jxl.Workb ...

  7. excel函数去重_Python中实现Excel的重复值提取

    本文作者:王碧琪,中南财经政法大学金融学院 本文编辑:任   哲 技术总编:张馨月 爬虫俱乐部云端课程 爬虫俱乐部于2020年暑期在线上举办的Stata与Python编程技术训练营和Stata数据分析 ...

  8. java获取response数据_Java中实现Http请求并获取响应数据

    前言 在演示的功能代码中使用的请求http地址为:http://timor.tech/api/holiday/year/ 接口说明:获取指定年份或年月份的所有节假日信息.默认返回当前年份的所有信息. ...

  9. java堆 数据结构 堆_Java中的紧凑堆外结构/组合

    java堆 数据结构 堆 在上一篇文章中,我详细介绍了代码对主内存的访问方式的含义. 从那时起,我就在Java中可以做什么以实现更可预测的内存布局提出了很多疑问. 有些模式可以使用数组支持的结构来应用 ...

最新文章

  1. 理解jmeter聚合报告
  2. 3.如何安装Apache Spark
  3. arrays中copyof复制两个数组_Java的数组初识和拷贝用法
  4. 浅谈ASP.NET 4中构造“.NET研究”HTML5视频控件
  5. 8位16位32位单片机区别
  6. CentOS 6.3下Apache+SVN部署Web版本同步
  7. leetcode Largest Rectangle in Histogram 单调栈
  8. 网络工程师需要那些技术
  9. 内网穿透 (Natapp)
  10. 方舟生存计划怎么删除服务器信息,方舟服务器怎么删除玩家数据 | 手游网游页游攻略大全...
  11. Spring核心方法 refresh 解析
  12. Python 数据处理与分析(五) 设计一个高回报的投资组合(投资回报和风险分析)任务 4:马科维茨的均值-方差组合模型
  13. bochs运行xp_bochs xp镜像完整免费版
  14. 首届青年统计学家论坛 | 小微金融与个人征信专场
  15. 简单通俗易懂 汽车入门知识图解大集合
  16. flex实现自定义鼠标
  17. echarts饼图圆环图数据为0时字体重叠
  18. 樊登《创业,从发心到执行》课程学习总结
  19. win10自动修复-无限循环【通用完美】超简单解决办法
  20. 华为鸿蒙摄像头,随时随地看一看!华为首款鸿蒙智能摄像头发布

热门文章

  1. Quay (2) - 镜像常规操作
  2. OpenShift 4 之登录进 CodeReady Container 的 CoreOS
  3. 为Raspberry Pi开发.NET应用程序:第2部分
  4. Python 2 结束支持,Ubuntu 20.04 LTS 继续进行将其移除的工作
  5. element table批量删除_element ui 批量删除
  6. delphi接口带上请求头是什么意思_Python接口自动化之Token详解及应用
  7. RestFul的学习 2021-04-25
  8. makefile 打印变量_通过实例学Makefile
  9. 70进货卖100利润是多少_服装批发利润大揭秘!让你拿货砍价心里有个底
  10. 白月黑羽教python_白月黑羽Python在线教程