}
//故障情况
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开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
最后
在面试前我整理归纳了一些面试学习资料,文中结合我的朋友同学面试美团滴滴这类大厂的资料及案例
由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!
大家看完有什么不懂的可以在下方留言讨论也可以关注。
觉得文章对你有帮助的话记得关注我点个赞支持一下!
…(img-qCLcFRuF-1710419818855)]
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
[外链图片转存中…(img-3QCwZd8B-1710419818855)]
最后
在面试前我整理归纳了一些面试学习资料,文中结合我的朋友同学面试美团滴滴这类大厂的资料及案例
[外链图片转存中…(img-YBKQdJbP-1710419818855)]
[外链图片转存中…(img-pXJuP9v2-1710419818856)]
由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!
大家看完有什么不懂的可以在下方留言讨论也可以关注。
觉得文章对你有帮助的话记得关注我点个赞支持一下!