将数据库中的数据按要求导出到excel表中

}

//故障情况

if(repair.getContent()==null){

rowDataList.add(“”);

}else {

rowDataList.add(“”+repair.getContent());

}

//处理方法

if(repair.getSuggest()==null){

rowDataList.add(“”);

}else {

rowDataList.add(“”+repair.getSuggest());

}

//结果

if(repair.getStatus()==0){

rowDataList.add(“待响应”);

}else if(repair.getStatus()==1){

rowDataList.add(“转接中”);

}else if(repair.getStatus()==2){

rowDataList.add(“处理中”);

}else if(repair.getStatus()==3){

rowDataList.add(“已预约”);

}else if(repair.getStatus()==4){

rowDataList.add(“待评价”);

}else if(repair.getStatus()==5){

rowDataList.add(“已评价”);

}else if(repair.getStatus()==7){

rowDataList.add(“关单”);

}else {

rowDataList.add(“”);

}

//工程师

if(repair.getEname()==null){

rowDataList.add(“”);

}else {

rowDataList.add(“”+repair.getEname());

}

//抽查回访结果

if(repair.getAvgScore()==null){

rowDataList.add(“”);

}else {

double avgScore=Double.parseDouble(repair.getAvgScore());

if(avgScore==5){

rowDataList.add(“非常满意”);

}else if(avgScore==4){

rowDataList.add(“满意”);

}else if(avgScore==3){

rowDataList.add(“一般般”);

}else if(avgScore==2){

rowDataList.add(“不满意”);

}else if(avgScore==1){

rowDataList.add(“非常不满意”);

}else {

rowDataList.add(“”);

}

}

//备注

rowDataList.add(“”);

list.add(rowDataList);

}

}

return list;

}

这样一个基本的导出功能就已经实现了。附上ExportExcel.java文件,设置表格的样式。

package com.pilot.util;

import java.io.OutputStream;

import java.net.URLEncoder;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

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;

public class ExportExcel {

public static void excelOut(String[] cloumName, List<List> list,String fileName,

HttpServletRequest request,HttpServletResponse response){

HSSFWorkbook workbook = new HSSFWorkbook();

HSSFSheet sheet = workbook.createSheet(fileName);

HSSFRow oneRow=sheet.createRow(0);

oneRow.setHeight((short) 500);

HSSFCell cell = null;

HSSFCellStyle style = workbook.createCellStyle();

style.setAlignment(HSSFCellStyle.ALIGN_CENTER);

style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);

HSSFFont font = workbook.createFont();

font.setFontName(“微软雅黑”);

style.setFont(font);

style.setWrapText(true);

HSSFCellStyle style1 = workbook.createCellStyle();

style1.setAlignment(HSSFCellStyle.ALIGN_CENTER);

style1.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);

style1.setFillForegroundColor(HSSFColor.AQUA.index);

style1.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);

style1.setFont(font);

HSSFRow row = sheet.createRow(0);

for(int i = 0; i < cloumName.length; i++){

//单元格

cell = row.createCell(i);

cell.setCellStyle(style1);

cell.setCellValue(cloumName[i]);

}

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

row = sheet.createRow(i + 1);

List dataList = list.get(i);

for (int j = 0; j < dataList.size(); j++) {

// 表格内容样式设置

cell = row.createCell(j);

cell.setCellStyle(style);

cell.setCellValue(String.valueOf(dataList.get(j)));

sheet.autoSizeColumn(( short ) j);

}

}

try{

response.reset();

OutputStream os = response.getOutputStream();

response.setHeader(“Content-disposition”,“attachment; filename=”+URLEncoder.encode(fileName, “utf-8”)+“.xls”);//设定输出文件头

response.setContentType(“application/msexcel”);//定义输出类型

workbook.write(os);

os.close();

} catch (Exception e){

e.printStackTrace();

}

}

/**

  • 自定义表头的报表导出

  • @param interf 自定义表头接口实现

  • @param list 数据内容list

  • @param fileName 文件名称

  • @param headerRows 表头占据的行数

  • @param request HttpServletRequest

  • @param response HttpServletResponse

*/

public static void excelOutWithCustomHeader(CustomHeaderInterf interf, List<List> list,String fileName, int headerRows,

HttpServletRequest request,HttpServletResponse response){

HSSFWorkbook workbook = new HSSFWorkbook();

HSSFSheet sheet = workbook.createSheet(fileName);

HSSFRow oneRow=sheet.createRow(0);

oneRow.setHeight((short) 500);

HSSFCell cell = null;

// 内容单元格的样式

HSSFCellStyle style = workbook.createCellStyle();

style.setAlignment(HSSFCellStyle.ALIGN_CENTER);

style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);

HSSFFont font = workbook.createFont();

font.setFontName(“微软雅黑”);

style.setFont(font);

style.setWrapText(true);

// 表头单元格的样式

HSSFCellStyle style1 = workbook.createCellStyle();

style1.setAlignment(HSSFCellStyle.ALIGN_CENTER);

style1.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);

style1.setFillForegroundColor(HSSFColor.AQUA.index);

style1.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);

style1.setFont(font);

HSSFRow row = sheet.createRow(0);

if(interf != null){

// 调用自定义表头的实现方法

interf.dealCustomHeader(sheet, style1);

}

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

row = sheet.createRow(i + headerRows);

List dataList = list.get(i);

for (int j = 0; j < dataList.size(); j++) {

// 表格内容样式设置

cell = row.createCell(j);

cell.setCellStyle(style);

cell.setCellValue(String.valueOf(dataList.get(j)));

sheet.autoSizeColumn(( short ) j);

}

}

try{

response.reset();

OutputStream os = response.getOutputStream();

response.setHeader(“Content-disposition”,“attachment; filename=”+URLEncoder.encode(fileName, “utf-8”)+“.xls”);//设定输出文件头

response.setContentType(“application/msexcel”);//定义输出类型

workbook.write(os);

os.close();

} catch (Exception e){

e.printStackTrace();

}

}

/**

  • 自定义表头处理接口定义

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
img

最后

在面试前我整理归纳了一些面试学习资料,文中结合我的朋友同学面试美团滴滴这类大厂的资料及案例

MyBatis答案解析
由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!

大家看完有什么不懂的可以在下方留言讨论也可以关注。

觉得文章对你有帮助的话记得关注我点个赞支持一下!

…(img-qCLcFRuF-1710419818855)]

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
[外链图片转存中…(img-3QCwZd8B-1710419818855)]

最后

在面试前我整理归纳了一些面试学习资料,文中结合我的朋友同学面试美团滴滴这类大厂的资料及案例
[外链图片转存中…(img-YBKQdJbP-1710419818855)]

[外链图片转存中…(img-pXJuP9v2-1710419818856)]
由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!

大家看完有什么不懂的可以在下方留言讨论也可以关注。

觉得文章对你有帮助的话记得关注我点个赞支持一下!

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

  • 27
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值