1
0
mirror of https://github.com/chatopera/cosin.git synced 2025-08-05 20:41:34 +08:00

Fix UKExcelUtil

This commit is contained in:
dengchao@xgtl 2020-04-17 14:45:03 +08:00
parent b4865d8869
commit 55c1d2b159
2 changed files with 846 additions and 865 deletions

View File

@ -19,9 +19,6 @@ package com.chatopera.cc.util.bi;
import com.chatopera.cc.util.bi.model.FirstTitle; import com.chatopera.cc.util.bi.model.FirstTitle;
import com.chatopera.cc.util.bi.model.Level; import com.chatopera.cc.util.bi.model.Level;
import com.chatopera.cc.util.bi.model.ValueData; import com.chatopera.cc.util.bi.model.ValueData;
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.HSSFRichTextString; import org.apache.poi.hssf.usermodel.HSSFRichTextString;
import org.apache.poi.hssf.util.HSSFColor; import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.usermodel.*;
@ -39,34 +36,26 @@ import java.util.regex.Pattern;
/** /**
* 导出Excel * 导出Excel
* @author Jason Chen
* *
* @author Jason Chen
*/ */
public class UKExcelUtil{ public class UKExcelUtil {
private final static int ROW_LIMIT = 100;
int page = 1;
private ReportData reportData; private ReportData reportData;
private SXSSFWorkbook wb; private SXSSFWorkbook wb;
private Sheet sheet; private Sheet sheet;
private final static int ROW_LIMIT = 100 ;
private int rowNum = 0; private int rowNum = 0;
private int rowTitleNum = 0;
private int rowTitleNum =0;
private int cellNumber = 0; //总列数 private int cellNumber = 0; //总列数
private String headTitle ="报表"; private String headTitle = "报表";
private String startTime = "";
private String startTime ="";
private String endTime = ""; private String endTime = "";
private CellStyle firstStyle = null;
private CellStyle style = null;
private CellStyle datastyle = null;
private OutputStream out;
private CellStyle firstStyle = null ;
private CellStyle style = null ;
private CellStyle datastyle = null ;
int page = 1 ;
private OutputStream out ;
public UKExcelUtil() { public UKExcelUtil() {
super(); super();
wb = new SXSSFWorkbook(ROW_LIMIT); wb = new SXSSFWorkbook(ROW_LIMIT);
@ -74,17 +63,18 @@ public class UKExcelUtil{
style = createContentCellStyle(); style = createContentCellStyle();
datastyle = createContentCellStyle(); datastyle = createContentCellStyle();
} }
public UKExcelUtil(ReportData reportData , OutputStream out , String title){
public UKExcelUtil(ReportData reportData, OutputStream out, String title) {
this.reportData = reportData; this.reportData = reportData;
this.out = out ; this.out = out;
this.headTitle = title ; this.headTitle = title;
init(); init();
} }
/** /**
* 初始化部分信息 * 初始化部分信息
*/ */
private void init(){ private void init() {
wb = new SXSSFWorkbook(ROW_LIMIT); wb = new SXSSFWorkbook(ROW_LIMIT);
sheet = wb.createSheet(); sheet = wb.createSheet();
@ -93,7 +83,7 @@ public class UKExcelUtil{
datastyle = createContentCellStyle(); datastyle = createContentCellStyle();
} }
public void createFile() throws IOException{ public void createFile() throws IOException {
this.createCellNumber(); this.createCellNumber();
this.createHead(); this.createHead();
this.createSubHead(); this.createSubHead();
@ -106,26 +96,27 @@ public class UKExcelUtil{
/** /**
* 计算总列数 * 计算总列数
*/ */
private void createCellNumber(){ private void createCellNumber() {
if(reportData.getRow()!=null){ if (reportData.getRow() != null) {
if(reportData.getRow().getFirstTitle()!=null){ if (reportData.getRow().getFirstTitle() != null) {
rowTitleNum = reportData.getRow().getTitle().size(); rowTitleNum = reportData.getRow().getTitle().size();
} }
} }
cellNumber = reportData.getCol().getColspan()+rowTitleNum; //总列数 cellNumber = reportData.getCol().getColspan() + rowTitleNum; //总列数
getnewCol(); getnewCol();
sheet.setColumnWidth(0, 8000); sheet.setColumnWidth(0, 8000);
for (int i = 1; i < cellNumber; i++) { for (int i = 1; i < cellNumber; i++) {
sheet.setColumnWidth(i, 5000); sheet.setColumnWidth(i, 5000);
} }
} }
private void getnewCol(){
private void getnewCol() {
List<List<Level>> title = reportData.getCol().getTitle(); List<List<Level>> title = reportData.getCol().getTitle();
if(title!=null){ if (title != null) {
for(List<Level> levelList : title){ for (List<Level> levelList : title) {
for(Level level : levelList){ for (Level level : levelList) {
if("newcol".equals(level.getLeveltype())){ if ("newcol".equals(level.getLeveltype())) {
cellNumber ++; cellNumber++;
} }
} }
} }
@ -136,7 +127,7 @@ public class UKExcelUtil{
* 构建头部 * 构建头部
*/ */
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
private void createHead(){ private void createHead() {
Row row = sheet.createRow(rowNum); Row row = sheet.createRow(rowNum);
// 设置第一行 // 设置第一行
@ -144,156 +135,153 @@ public class UKExcelUtil{
row.setHeight((short) 1100); row.setHeight((short) 1100);
// 定义单元格为字符串类型 // 定义单元格为字符串类型
cell.setCellType(HSSFCell.ENCODING_UTF_16); cell.setCellType(CellType.STRING);
cell.setCellValue(new XSSFRichTextString(this.headTitle)); cell.setCellValue(new XSSFRichTextString(this.headTitle));
// 指定合并区域 // 指定合并区域
if(rowNum>0) { if (rowNum > 0) {
sheet.addMergedRegion(new CellRangeAddress(rowNum, rowNum,0,(cellNumber-1))); sheet.addMergedRegion(new CellRangeAddress(rowNum, rowNum, 0, (cellNumber - 1)));
} }
CellStyle cellStyle = wb.createCellStyle(); CellStyle cellStyle = wb.createCellStyle();
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 指定单元格居中对齐 cellStyle.setAlignment(HorizontalAlignment.CENTER); // 指定单元格居中对齐
cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 指定单元格垂直居中对齐 cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);// 指定单元格垂直居中对齐
cellStyle.setWrapText(true);// 指定单元格自动换行 cellStyle.setWrapText(true);// 指定单元格自动换行
// 设置单元格字体 // 设置单元格字体
Font font = wb.createFont(); Font font = wb.createFont();
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); font.setBold(true);
font.setFontName("宋体"); font.setFontName("宋体");
font.setFontHeight((short) 400); font.setFontHeight((short) 400);
cellStyle.setFont(font); cellStyle.setFont(font);
cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN); cellStyle.setBorderTop(BorderStyle.THIN);
cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN); cellStyle.setBorderLeft(BorderStyle.THIN);
cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN); cellStyle.setBorderRight(BorderStyle.THIN);
cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); cellStyle.setBorderBottom(BorderStyle.THIN);
cell.setCellStyle(cellStyle); cell.setCellStyle(cellStyle);
for(int i=1;i<this.cellNumber;i++){ for (int i = 1; i < this.cellNumber; i++) {
Cell cell3= row.createCell(i); Cell cell3 = row.createCell(i);
cell3.setCellStyle(cellStyle); cell3.setCellStyle(cellStyle);
} }
rowNum ++; rowNum++;
} }
/** /**
* 构建副标题 * 构建副标题
*/ */
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
private void createSubHead(){ private void createSubHead() {
CellStyle cellStyle = wb.createCellStyle(); CellStyle cellStyle = wb.createCellStyle();
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 指定单元格居中对齐 cellStyle.setAlignment(HorizontalAlignment.CENTER); // 指定单元格居中对齐
cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 指定单元格垂直居中对齐 cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);// 指定单元格垂直居中对齐
cellStyle.setWrapText(true);// 指定单元格自动换行 cellStyle.setWrapText(true);// 指定单元格自动换行
// 设置单元格字体 // 设置单元格字体
Font font = wb.createFont(); Font font = wb.createFont();
//font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); //font.setBold(true);
font.setFontName("宋体"); font.setFontName("宋体");
font.setFontHeight((short) 180); font.setFontHeight((short) 180);
cellStyle.setFont(font); cellStyle.setFont(font);
cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN); cellStyle.setBorderTop(BorderStyle.THIN);
cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN); cellStyle.setBorderLeft(BorderStyle.THIN);
cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN); cellStyle.setBorderRight(BorderStyle.THIN);
cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); cellStyle.setBorderBottom(BorderStyle.THIN);
CellStyle leftStyle = wb.createCellStyle(); CellStyle leftStyle = wb.createCellStyle();
leftStyle.setAlignment(HSSFCellStyle.ALIGN_LEFT); // 指定单元格居中对齐 leftStyle.setAlignment(HorizontalAlignment.LEFT); // 指定单元格居中对齐
leftStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 指定单元格垂直居中对齐 leftStyle.setVerticalAlignment(VerticalAlignment.CENTER);// 指定单元格垂直居中对齐
leftStyle.setWrapText(true);// 指定单元格自动换行 leftStyle.setWrapText(true);// 指定单元格自动换行
leftStyle.setFont(font); leftStyle.setFont(font);
leftStyle.setBorderTop(HSSFCellStyle.BORDER_THIN); leftStyle.setBorderTop(BorderStyle.THIN);
leftStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN); leftStyle.setBorderLeft(BorderStyle.THIN);
leftStyle.setBorderRight(HSSFCellStyle.BORDER_THIN); leftStyle.setBorderRight(BorderStyle.THIN);
leftStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); leftStyle.setBorderBottom(BorderStyle.THIN);
Row row1 = sheet.createRow(rowNum); Row row1 = sheet.createRow(rowNum);
row1.setHeight((short) 440); row1.setHeight((short) 440);
// if(false){ //增加 过滤器
StringBuffer strb = new StringBuffer();
// if(false){ //增加 过滤器
// //
// }else{ // }else{
// //
// } // }
strb.append("报表生成日期:").append(getNowDate()) ;
Cell cell2 = row1.createCell(0); Cell cell2 = row1.createCell(0);
cell2.setCellType(HSSFCell.ENCODING_UTF_16); cell2.setCellType(CellType.STRING);
cell2.setCellValue(new XSSFRichTextString(strb.toString())); cell2.setCellValue(new XSSFRichTextString("报表生成日期:" + getNowDate()));
cell2.setCellStyle(leftStyle); cell2.setCellStyle(leftStyle);
// 指定合并区域 // 指定合并区域
if(rowNum>1) { if (rowNum > 1) {
sheet.addMergedRegion(new CellRangeAddress(rowNum, rowNum, 0, (cellNumber-1))); sheet.addMergedRegion(new CellRangeAddress(rowNum, rowNum, 0, (cellNumber - 1)));
} }
for(int i=1;i<this.cellNumber;i++){ for (int i = 1; i < this.cellNumber; i++) {
Cell cell3= row1.createCell(i); Cell cell3 = row1.createCell(i);
cell3.setCellStyle(cellStyle); cell3.setCellStyle(cellStyle);
} }
rowNum ++; rowNum++;
} }
/** /**
* 构建标题 * 构建标题
*/ */
private void createTitle(){ private void createTitle() {
List<List<Level>> title = reportData.getCol().getTitle(); List<List<Level>> title = reportData.getCol().getTitle();
if(title!=null){ if (title != null) {
// HSSFRow row = sheet.createRow(rowNum); // HSSFRow row = sheet.createRow(rowNum);
// row.setHeight((short)480); // row.setHeight((short)480);
// //
// rowNum ++; // rowNum ++;
CellStyle titleStyle = createTitleCellStyle(); CellStyle titleStyle = createTitleCellStyle();
{ {
int rowinx = 0 ; int rowinx = 0;
int rowTitleSize = reportData.getRow() != null? reportData.getRow().getTitle().size():0; int rowTitleSize = reportData.getRow() != null ? reportData.getRow().getTitle().size() : 0;
for(List<Level> levelList : title){ for (List<Level> levelList : title) {
Row titleRow = sheet.createRow(rowNum); Row titleRow = sheet.createRow(rowNum);
//第一个空表 //第一个空表
int i = 0; int i = 0;
if(title.size()>1 && rowTitleSize>0 && rowinx==0){ if (title.size() > 1 && rowTitleSize > 0 && rowinx == 0) {
Cell cell = titleRow.createCell(0); Cell cell = titleRow.createCell(0);
sheet.addMergedRegion(new CellRangeAddress(rowNum, rowNum + reportData.getCol().getTitle().size()-2, 0,(rowTitleSize-1))); sheet.addMergedRegion(new CellRangeAddress(rowNum, rowNum + reportData.getCol().getTitle().size() - 2, 0, (rowTitleSize - 1)));
cell.setCellValue(new HSSFRichTextString("")); cell.setCellValue(new HSSFRichTextString(""));
cell.setCellStyle(titleStyle); cell.setCellStyle(titleStyle);
} }
if(rowinx+1 == reportData.getCol().getTitle().size()){ if (rowinx + 1 == reportData.getCol().getTitle().size()) {
int firstTitleNo = 0 ; int firstTitleNo = 0;
if(reportData.getRow() != null && reportData.getRow().getFirstTitle()!=null){ if (reportData.getRow() != null && reportData.getRow().getFirstTitle() != null) {
for(FirstTitle firstTitle:reportData.getRow().getFirstTitle()){ for (FirstTitle firstTitle : reportData.getRow().getFirstTitle()) {
Cell blankcell = titleRow.createCell(firstTitleNo++); Cell blankcell = titleRow.createCell(firstTitleNo++);
blankcell.setCellStyle(titleStyle); blankcell.setCellStyle(titleStyle);
blankcell.setCellValue(new XSSFRichTextString(firstTitle.getName())); blankcell.setCellValue(new XSSFRichTextString(firstTitle.getName()));
} }
} }
} }
for(Level level : levelList){ for (Level level : levelList) {
Cell cell = titleRow.createCell(rowTitleSize+i); Cell cell = titleRow.createCell(rowTitleSize + i);
if("newcol".equals(level.getLeveltype())){ if ("newcol".equals(level.getLeveltype())) {
sheet.addMergedRegion(new CellRangeAddress(rowNum, rowNum + reportData.getCol().getTitle().size()-1,(rowTitleSize+i) , (rowTitleSize+i))); sheet.addMergedRegion(new CellRangeAddress(rowNum, rowNum + reportData.getCol().getTitle().size() - 1, (rowTitleSize + i), (rowTitleSize + i)));
} }
if(level.getColspan()>1){ if (level.getColspan() > 1) {
for(int rowinxno = 0 ; rowinxno<level.getColspan() ; rowinxno++){ for (int rowinxno = 0; rowinxno < level.getColspan(); rowinxno++) {
Cell blankcell = titleRow.createCell(rowTitleSize+i+rowinxno); Cell blankcell = titleRow.createCell(rowTitleSize + i + rowinxno);
blankcell.setCellStyle(titleStyle); blankcell.setCellStyle(titleStyle);
blankcell.setCellValue(new HSSFRichTextString(level.getName())); blankcell.setCellValue(new HSSFRichTextString(level.getName()));
} }
sheet.addMergedRegion(new CellRangeAddress(rowNum, rowNum, (rowTitleSize+i), (rowTitleSize+i+level.getColspan()-1))); sheet.addMergedRegion(new CellRangeAddress(rowNum, rowNum, (rowTitleSize + i), (rowTitleSize + i + level.getColspan() - 1)));
} }
cell.setCellValue(new XSSFRichTextString(level.getName())); cell.setCellValue(new XSSFRichTextString(level.getName()));
cell.setCellStyle(titleStyle); cell.setCellStyle(titleStyle);
i=i+level.getColspan(); i = i + level.getColspan();
} }
rowinx++ ; rowinx++;
rowNum++ ; rowNum++;
} }
} }
} }
@ -302,19 +290,19 @@ public class UKExcelUtil{
/** /**
* 构建内容 * 构建内容
*/ */
private synchronized void createContent(){ private synchronized void createContent() {
StringBuffer sbRol = new StringBuffer(); StringBuilder sbRol = new StringBuilder();
StringBuffer sbCol = new StringBuffer(); StringBuilder sbCol = new StringBuilder();
StringBuffer sbDataCol = new StringBuffer(); StringBuilder sbDataCol = new StringBuilder();
StringBuffer sbDataRol = new StringBuffer(); StringBuilder sbDataRol = new StringBuilder();
if(reportData.getRow()!=null){ if (reportData.getRow() != null) {
List<List<Level>> rowlst = reportData.getRow().getTitle(); List<List<Level>> rowlst = reportData.getRow().getTitle();
List<List<ValueData>> dataList = reportData.getData(); List<List<ValueData>> dataList = reportData.getData();
for(int r =0;dataList!=null && r<dataList.size();r++){ for (int r = 0; dataList != null && r < dataList.size(); r++) {
if(rowNum>1048575){//超过excel上限新建sheet if (rowNum > 1048575) {//超过excel上限新建sheet
sheet = wb.createSheet(); sheet = wb.createSheet();
rowNum = 0; rowNum = 0;
this.createCellNumber(); this.createCellNumber();
@ -325,96 +313,95 @@ public class UKExcelUtil{
} }
int cellNum = 0; int cellNum = 0;
Row row2 = sheet.createRow(rowNum); Row row2 = sheet.createRow(rowNum);
row2.setHeight((short)420); row2.setHeight((short) 420);
Cell cell2 = row2.createCell(0); Cell cell2 = row2.createCell(0);
cell2.setCellStyle(firstStyle); cell2.setCellStyle(firstStyle);
//weidu //weidu
for(int c = 0;c<rowlst.size();c++){ for (List<Level> levels : rowlst) {
int rowspan = 0 ; int rowspan = 0;
Cell cell3 = row2.createCell(cellNum); Cell cell3 = row2.createCell(cellNum);
List<Level> leveList = rowlst.get(c) ; Level currentLevel = null;
Level currentLevel = null ; for (Level level : levels) {
for(Level level : leveList){ if (rowspan == r) {
if(rowspan == r){ currentLevel = level;
currentLevel = level ; break;
break ;
} }
rowspan = rowspan + (level.getRowspan()>0 ? level.getRowspan() : 1 ); rowspan = rowspan + (level.getRowspan() > 0 ? level.getRowspan() : 1);
} }
if(currentLevel!=null){ if (currentLevel != null) {
String value = String.valueOf(currentLevel.getName()); String value = String.valueOf(currentLevel.getName());
if(!"".equals(value)){ if (!"".equals(value)) {
if(value.indexOf("%") >-1){ if (value.contains("%")) {
value = value.replace("%",""); value = value.replace("%", "");
if(checkIsNumber(String.valueOf(value)) ){ if (checkIsNumber(value)) {
cell3.setCellValue(Double.parseDouble(value) /100); cell3.setCellValue(Double.parseDouble(value) / 100);
datastyle.setDataFormat(wb.createDataFormat().getFormat("0.00%") ); datastyle.setDataFormat(wb.createDataFormat().getFormat("0.00%"));
cell3.setCellStyle(datastyle); cell3.setCellStyle(datastyle);
}else{ } else {
// style.setDataFormat(wb.createDataFormat().getFormat("")); // style.setDataFormat(wb.createDataFormat().getFormat(""));
cell3.setCellValue(""); cell3.setCellValue("");
cell3.setCellStyle(style); cell3.setCellStyle(style);
} }
}else{ } else {
if(checkIsNumber(String.valueOf(value)) ){ if (checkIsNumber(value)) {
cell3.setCellValue(Double.parseDouble(String.valueOf(value))); cell3.setCellValue(Double.parseDouble(value));
cell3.setCellStyle(style); cell3.setCellStyle(style);
}else{ } else {
cell3.setCellValue(String.valueOf(value)); cell3.setCellValue(value);
cell3.setCellStyle(style); cell3.setCellStyle(style);
} }
} }
}else{ } else {
cell3.setCellValue(""); cell3.setCellValue("");
cell3.setCellStyle(style); cell3.setCellStyle(style);
} }
if(currentLevel!=null && currentLevel.getRowspan()>1){ if (currentLevel.getRowspan() > 1) {
sbRol.append(rowNum).append(",").append(cellNum).append(",").append(currentLevel.getRowspan()).append(";");//开始行开始列合并行数 sbRol.append(rowNum).append(",").append(cellNum).append(",").append(currentLevel.getRowspan()).append(";");//开始行开始列合并行数
}else if(currentLevel!=null && currentLevel.getColspan()>1){ } else if (currentLevel.getColspan() > 1) {
sbCol.append(rowNum).append(",").append(cellNum).append(",").append(currentLevel.getColspan()).append(";");//开始行开始列合并列数 sbCol.append(rowNum).append(",").append(cellNum).append(",").append(currentLevel.getColspan()).append(";");//开始行开始列合并列数
} }
}else{ } else {
cell3.setCellValue(""); cell3.setCellValue("");
cell3.setCellStyle(style); cell3.setCellStyle(style);
} }
cellNum++; cellNum++;
} }
//zhibiao //zhibiao
for(int j = 0;j<dataList.get(r).size();j++){ for (int j = 0; j < dataList.get(r).size(); j++) {
Cell cell3 = row2.createCell(cellNum); Cell cell3 = row2.createCell(cellNum);
String value = String.valueOf(dataList.get(r).get(j)); String value = String.valueOf(dataList.get(r).get(j));
if(dataList.get(r).get(j)!=null && dataList.get(r).get(j).getRowspan()>1){ if (dataList.get(r).get(j) != null && dataList.get(r).get(j).getRowspan() > 1) {
sbDataRol.append(rowNum).append(",").append(cellNum).append(",").append(dataList.get(r).get(j).getRowspan()).append(";");//开始行开始列合并行数 sbDataRol.append(rowNum).append(",").append(cellNum).append(",").append(dataList.get(r).get(j).getRowspan()).append(";");//开始行开始列合并行数
}else if(dataList.get(r).get(j)!=null && dataList.get(r).get(j).getColspan()>1){ } else if (dataList.get(r).get(j) != null && dataList.get(r).get(j).getColspan() > 1) {
sbDataCol.append(rowNum).append(",").append(cellNum).append(",").append(dataList.get(r).get(j).getColspan()).append(";");//开始行开始列合并列数 sbDataCol.append(rowNum).append(",").append(cellNum).append(",").append(dataList.get(r).get(j).getColspan()).append(";");//开始行开始列合并列数
} }
if(!"".equals(value)){ if (!"".equals(value)) {
if(value.indexOf("%") >-1){ if (value.contains("%")) {
value = value.replace("%",""); value = value.replace("%", "");
if(checkIsNumber(String.valueOf(value)) ){ if (checkIsNumber(value)) {
cell3.setCellValue(Double.parseDouble(value) /100); cell3.setCellValue(Double.parseDouble(value) / 100);
datastyle.setDataFormat(wb.createDataFormat().getFormat("0.00%")); datastyle.setDataFormat(wb.createDataFormat().getFormat("0.00%"));
cell3.setCellStyle(datastyle); cell3.setCellStyle(datastyle);
}else{ } else {
cell3.setCellValue("0.00%"); cell3.setCellValue("0.00%");
cell3.setCellStyle(style); cell3.setCellStyle(style);
} }
}else{ } else {
// if(checkIsNumber(String.valueOf(value)) ){ // if(checkIsNumber(String.valueOf(value)) ){
// cell3.setCellValue(Double.parseDouble(String.valueOf(value))); // cell3.setCellValue(Double.parseDouble(String.valueOf(value)));
// cell3.setCellStyle(style); // cell3.setCellStyle(style);
// }else{ // }else{
cell3.setCellValue(String.valueOf(value)); cell3.setCellValue(value);
cell3.setCellStyle(style); cell3.setCellStyle(style);
// } // }
} }
}else{ } else {
cell3.setCellValue("0"); cell3.setCellValue("0");
cell3.setCellStyle(style); cell3.setCellStyle(style);
} }
@ -426,46 +413,45 @@ public class UKExcelUtil{
} }
// 单元格合并 // 单元格合并
// 四个参数分别是起始行结束行起始列结束列 // 四个参数分别是起始行结束行起始列结束列
for(String clospan:sbRol.toString().split(";")){ for (String clospan : sbRol.toString().split(";")) {
if(clospan.length()>0){ if (clospan.length() > 0) {
String[] valueStr = clospan.split(","); String[] valueStr = clospan.split(",");
sheet.addMergedRegion(new CellRangeAddress(Integer.parseInt(valueStr[0]),Integer.parseInt(valueStr[0])+Integer.parseInt(valueStr[2])-1,(short)Integer.parseInt(valueStr[1]),(short)Integer.parseInt(valueStr[1]))); sheet.addMergedRegion(new CellRangeAddress(Integer.parseInt(valueStr[0]), Integer.parseInt(valueStr[0]) + Integer.parseInt(valueStr[2]) - 1, (short) Integer.parseInt(valueStr[1]), (short) Integer.parseInt(valueStr[1])));
} }
} }
for(String clospan:sbCol.toString().split(";")){ for (String clospan : sbCol.toString().split(";")) {
if(clospan.length()>0){ if (clospan.length() > 0) {
String[] valueStr = clospan.split(","); String[] valueStr = clospan.split(",");
sheet.addMergedRegion(new CellRangeAddress(Integer.parseInt(valueStr[0]),Integer.parseInt(valueStr[0]),(short)Integer.parseInt(valueStr[1]),(short)(Integer.parseInt(valueStr[1])+Integer.parseInt(valueStr[2])-1))); sheet.addMergedRegion(new CellRangeAddress(Integer.parseInt(valueStr[0]), Integer.parseInt(valueStr[0]), (short) Integer.parseInt(valueStr[1]), (short) (Integer.parseInt(valueStr[1]) + Integer.parseInt(valueStr[2]) - 1)));
} }
} }
for(String clospan:sbDataRol.toString().split(";")){ for (String clospan : sbDataRol.toString().split(";")) {
if(clospan.length()>0){ if (clospan.length() > 0) {
String[] valueStr = clospan.split(","); String[] valueStr = clospan.split(",");
sheet.addMergedRegion(new CellRangeAddress(Integer.parseInt(valueStr[0]),Integer.parseInt(valueStr[0])+Integer.parseInt(valueStr[2])-1,(short)Integer.parseInt(valueStr[1]),(short)Integer.parseInt(valueStr[1]))); sheet.addMergedRegion(new CellRangeAddress(Integer.parseInt(valueStr[0]), Integer.parseInt(valueStr[0]) + Integer.parseInt(valueStr[2]) - 1, (short) Integer.parseInt(valueStr[1]), (short) Integer.parseInt(valueStr[1])));
} }
} }
for(String clospan:sbDataCol.toString().split(";")){ for (String clospan : sbDataCol.toString().split(";")) {
if(clospan.length()>0){ if (clospan.length() > 0) {
String[] valueStr = clospan.split(","); String[] valueStr = clospan.split(",");
sheet.addMergedRegion(new CellRangeAddress(Integer.parseInt(valueStr[0]),Integer.parseInt(valueStr[0]),(short)Integer.parseInt(valueStr[1]),(short)(Integer.parseInt(valueStr[1])+Integer.parseInt(valueStr[2])-1))); sheet.addMergedRegion(new CellRangeAddress(Integer.parseInt(valueStr[0]), Integer.parseInt(valueStr[0]), (short) Integer.parseInt(valueStr[1]), (short) (Integer.parseInt(valueStr[1]) + Integer.parseInt(valueStr[2]) - 1)));
} }
} }
} }
} }
/** /**
* 首列样式 * 首列样式
* @return
*/ */
@SuppressWarnings("deprecation") private CellStyle createFirstCellStyle() {
private CellStyle createFirstCellStyle(){
CellStyle cellStyle = baseCellStyle(); CellStyle cellStyle = baseCellStyle();
Font font = wb.createFont(); Font font = wb.createFont();
font.setFontHeight((short) 180); font.setFontHeight((short) 180);
cellStyle.setFont(font); cellStyle.setFont(font);
cellStyle.setFillForegroundColor(HSSFColor.LIGHT_GREEN.index); cellStyle.setFillForegroundColor(HSSFColor.HSSFColorPredefined.LIGHT_GREEN.getIndex());
cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
return cellStyle; return cellStyle;
@ -473,17 +459,15 @@ public class UKExcelUtil{
/** /**
* 标题样式 * 标题样式
* @return
*/ */
@SuppressWarnings("deprecation") private CellStyle createTitleCellStyle() {
private CellStyle createTitleCellStyle(){
CellStyle cellStyle = baseCellStyle(); CellStyle cellStyle = baseCellStyle();
Font font = wb.createFont(); Font font = wb.createFont();
font.setFontHeight((short) 180); font.setFontHeight((short) 180);
cellStyle.setFont(font); cellStyle.setFont(font);
cellStyle.setFillForegroundColor(HSSFColor.LIGHT_GREEN.index); cellStyle.setFillForegroundColor(HSSFColor.HSSFColorPredefined.LIGHT_GREEN.getIndex());
cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
return cellStyle; return cellStyle;
@ -492,33 +476,30 @@ public class UKExcelUtil{
/** /**
* 内容样式 * 内容样式
* @return
*/ */
@SuppressWarnings("deprecation") private CellStyle createContentCellStyle() {
private CellStyle createContentCellStyle(){
CellStyle cellStyle = baseCellStyle(); CellStyle cellStyle = baseCellStyle();
Font font = wb.createFont(); Font font = wb.createFont();
font.setFontHeight((short) 200); font.setFontHeight((short) 200);
font.setBoldweight((short)0); font.setBold(false);
cellStyle.setFont(font); cellStyle.setFont(font);
return cellStyle; return cellStyle;
} }
@SuppressWarnings("deprecation") private CellStyle baseCellStyle() {
private CellStyle baseCellStyle(){
CellStyle cellStyle = wb.createCellStyle(); CellStyle cellStyle = wb.createCellStyle();
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); cellStyle.setAlignment(HorizontalAlignment.CENTER);
cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
cellStyle.setWrapText(true); cellStyle.setWrapText(true);
cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN); cellStyle.setBorderTop(BorderStyle.THIN);
cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN); cellStyle.setBorderLeft(BorderStyle.THIN);
cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN); cellStyle.setBorderRight(BorderStyle.THIN);
cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); cellStyle.setBorderBottom(BorderStyle.THIN);
Font font = wb.createFont(); Font font = wb.createFont();
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); font.setBold(true);
font.setFontName("宋体"); font.setFontName("宋体");
font.setFontHeight((short) 200); font.setFontHeight((short) 200);
cellStyle.setFont(font); cellStyle.setFont(font);
@ -526,55 +507,51 @@ public class UKExcelUtil{
return cellStyle; return cellStyle;
} }
private String getNowDate(){ private String getNowDate() {
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
return sf.format(new Date()); return sf.format(new Date());
} }
/** /**
* 输入EXCEL文件 * 输入EXCEL文件
*
* @param fileName 文件名
* @throws IOException
*/ */
private void outputExcel() throws IOException { private void outputExcel() throws IOException {
if(this.out!=null){ if (this.out != null) {
wb.write(this.out); wb.write(this.out);
} }
} }
private boolean checkIsNumber(String str){ private boolean checkIsNumber(String str) {
Pattern p = Pattern.compile("^(-?\\d+)(\\.\\d+)?$"); Pattern p = Pattern.compile("^(-?\\d+)(\\.\\d+)?$");
Matcher m = p.matcher(str); Matcher m = p.matcher(str);
return m.matches(); return m.matches();
} }
public void setStartTime(String startTime) {
this.startTime = startTime;
}
public void setEndTime(String endTime) {
this.endTime = endTime;
}
public String getHeadTitle() { public String getHeadTitle() {
// TODO Auto-generated method stub // TODO Auto-generated method stub
return this.headTitle; return this.headTitle;
} }
public void setHeadTitle(String title) {
this.headTitle = title;
}
public String getStartTime() { public String getStartTime() {
// TODO Auto-generated method stub // TODO Auto-generated method stub
return this.startTime; return this.startTime;
} }
public void setStartTime(String startTime) {
this.startTime = startTime;
}
public String getEndTime() { public String getEndTime() {
// TODO Auto-generated method stub // TODO Auto-generated method stub
return this.endTime; return this.endTime;
} }
public void setHeadTitle(String title) { public void setEndTime(String endTime) {
this.headTitle = title ; this.endTime = endTime;
} }
public void createSheet(String sheetName) throws Exception { public void createSheet(String sheetName) throws Exception {
@ -582,18 +559,15 @@ public class UKExcelUtil{
this.sheet = wb.createSheet(sheetName); this.sheet = wb.createSheet(sheetName);
} }
public void setReportData(ReportData reportData) throws Exception { public int getRowNum() throws Exception {
// TODO Auto-generated method stub // TODO Auto-generated method stub
this.reportData = reportData; return rowNum;
} }
public void setRowNum(int rowNum) { public void setRowNum(int rowNum) {
this.rowNum = rowNum; this.rowNum = rowNum;
} }
public int getRowNum() throws Exception {
// TODO Auto-generated method stub
return rowNum;
}
public void close() { public void close() {
try { try {
wb.write(out); wb.write(out);
@ -602,36 +576,47 @@ public class UKExcelUtil{
e.printStackTrace(); e.printStackTrace();
} }
} }
public void setPage(int page) throws Exception {
// TODO Auto-generated method stub
this.page=page;
}
public void setOut(OutputStream out) throws Exception { public void setOut(OutputStream out) throws Exception {
// TODO Auto-generated method stub // TODO Auto-generated method stub
this.out = out; this.out = out;
} }
public int getPage() throws Exception {
public int getPage() {
// TODO Auto-generated method stub // TODO Auto-generated method stub
return this.page; return this.page;
} }
public void writeHead(ReportData reportData) throws Exception {
if(this.reportData == null){ public void setPage(int page) {
this.reportData = reportData ; // TODO Auto-generated method stub
this.page = page;
}
public void writeHead(ReportData reportData) {
if (this.reportData == null) {
this.reportData = reportData;
} }
this.createCellNumber(); this.createCellNumber();
this.createHead(); this.createHead();
this.createSubHead(); this.createSubHead();
this.createTitle(); this.createTitle();
} }
public synchronized void writeRow(ReportData reportData) throws Exception {
if(reportData!=null){ public synchronized void writeRow(ReportData reportData) {
this.reportData = reportData ; if (reportData != null) {
this.reportData = reportData;
this.createContent(); this.createContent();
} }
} }
public ReportData getReportData() { public ReportData getReportData() {
// TODO Auto-generated method stub // TODO Auto-generated method stub
return this.reportData; return this.reportData;
} }
public void setReportData(ReportData reportData) {
// TODO Auto-generated method stub
this.reportData = reportData;
}
} }

View File

@ -23,8 +23,6 @@ import com.chatopera.cc.model.SysDic;
import com.chatopera.cc.model.TableProperties; import com.chatopera.cc.model.TableProperties;
import com.chatopera.cc.persistence.interfaces.DataExchangeInterface; import com.chatopera.cc.persistence.interfaces.DataExchangeInterface;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRichTextString; import org.apache.poi.hssf.usermodel.HSSFRichTextString;
import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.HSSFColor; import org.apache.poi.hssf.util.HSSFColor;
@ -36,33 +34,31 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@SuppressWarnings("deprecation")
public class ExcelExporterProcess { public class ExcelExporterProcess {
private HSSFWorkbook wb; private final HSSFWorkbook wb;
private Sheet sheet; private final Sheet sheet;
private CellStyle firstStyle = null ; private final CellStyle firstStyle;
private final List<Map<String, Object>> values;
private final MetadataTable table;
private final OutputStream output;
private int rowNum;
private Row titleRow;
private int rowNum ; public ExcelExporterProcess(List<Map<String, Object>> values, MetadataTable table, OutputStream output) {
this.values = values;
private List<Map<String ,Object>> values ; this.table = table;
private MetadataTable table ;
private OutputStream output ;
private Row titleRow ;
public ExcelExporterProcess(List<Map<String ,Object>> values , MetadataTable table , OutputStream output) {
this.values = values ;
this.table = table ;
this.output = output; this.output = output;
wb = new HSSFWorkbook(); wb = new HSSFWorkbook();
sheet = wb.createSheet(); sheet = wb.createSheet();
firstStyle = createFirstCellStyle(); firstStyle = createFirstCellStyle();
createHead() ; createHead();
} }
public void process() throws IOException{
public void process() throws IOException {
createContent(); createContent();
if(table!=null){ if (table != null) {
for(TableProperties tp : table.getTableproperty()){ for (TableProperties tp : table.getTableproperty()) {
sheet.autoSizeColumn(table.getTableproperty().indexOf(tp)) ; sheet.autoSizeColumn(table.getTableproperty().indexOf(tp));
} }
wb.write(this.output); wb.write(this.output);
} }
@ -71,23 +67,23 @@ public class ExcelExporterProcess {
/** /**
* 构建头部 * 构建头部
*/ */
private void createHead(){ private void createHead() {
titleRow = sheet.createRow(rowNum); titleRow = sheet.createRow(rowNum);
if(table!=null && table.getTableproperty()!=null){ if (table != null && table.getTableproperty() != null) {
for(TableProperties tp : table.getTableproperty()){ for (TableProperties tp : table.getTableproperty()) {
Cell cell2 = titleRow.createCell(table.getTableproperty().indexOf(tp)); Cell cell2 = titleRow.createCell(table.getTableproperty().indexOf(tp));
cell2.setCellStyle(firstStyle); cell2.setCellStyle(firstStyle);
cell2.setCellValue(new HSSFRichTextString(tp.getName())); cell2.setCellValue(new HSSFRichTextString(tp.getName()));
} }
} }
rowNum ++ ; rowNum++;
} }
private CellStyle createContentStyle(){ private CellStyle createContentStyle() {
CellStyle cellStyle = wb.createCellStyle(); CellStyle cellStyle = wb.createCellStyle();
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 指定单元格居中对齐 cellStyle.setAlignment(HorizontalAlignment.CENTER); // 指定单元格居中对齐
cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 指定单元格垂直居中对齐 cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);// 指定单元格垂直居中对齐
cellStyle.setWrapText(false);// 指定单元格自动换行 cellStyle.setWrapText(false);// 指定单元格自动换行
// 设置单元格字体 // 设置单元格字体
@ -95,18 +91,17 @@ public class ExcelExporterProcess {
font.setFontName("微软雅黑"); font.setFontName("微软雅黑");
font.setFontHeight((short) 200); font.setFontHeight((short) 200);
cellStyle.setFont(font); cellStyle.setFont(font);
cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN); cellStyle.setBorderTop(BorderStyle.THIN);
cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN); cellStyle.setBorderLeft(BorderStyle.THIN);
cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN); cellStyle.setBorderRight(BorderStyle.THIN);
cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); cellStyle.setBorderBottom(BorderStyle.THIN);
return cellStyle ; return cellStyle;
} }
/** /**
* 首列样式 * 首列样式
* @return
*/ */
private CellStyle createFirstCellStyle(){ private CellStyle createFirstCellStyle() {
CellStyle cellStyle = baseCellStyle(); CellStyle cellStyle = baseCellStyle();
Font font = wb.createFont(); Font font = wb.createFont();
font.setFontName("微软雅黑"); font.setFontName("微软雅黑");
@ -115,110 +110,111 @@ public class ExcelExporterProcess {
cellStyle.setWrapText(false); cellStyle.setWrapText(false);
cellStyle.setFillForegroundColor(HSSFColor.LIGHT_GREEN.index); cellStyle.setFillForegroundColor(HSSFColor.HSSFColorPredefined.LIGHT_GREEN.getIndex());
cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
return cellStyle; return cellStyle;
} }
private synchronized void createContent(){ private synchronized void createContent() {
CellStyle cellStyle = createContentStyle() ; CellStyle cellStyle = createContentStyle();
if(table!=null && table.getTableproperty()!=null){ if (table != null && table.getTableproperty() != null) {
for(Map<String , Object> value:values){ for (Map<String, Object> value : values) {
Row row2 = sheet.createRow(rowNum); Row row2 = sheet.createRow(rowNum);
List<ExportData> tempExportDatas = new ArrayList<ExportData>(); List<ExportData> tempExportDatas = new ArrayList<>();
int cols = 0 ; int cols = 0;
for(TableProperties tp : table.getTableproperty()){ for (TableProperties tp : table.getTableproperty()) {
Cell cell2 = row2.createCell(cols++); Cell cell2 = row2.createCell(cols++);
cell2.setCellStyle(cellStyle); cell2.setCellStyle(cellStyle);
if(value.get(tp.getFieldname())!=null){ if (value.get(tp.getFieldname()) != null) {
if(tp.isModits()) { if (tp.isModits()) {
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
List<String> list = (List<String>)value.get(tp.getFieldname()); List<String> list = (List<String>) value.get(tp.getFieldname());
if(list.size()>0) { if (list.size() > 0) {
cell2.setCellValue(new HSSFRichTextString(list.remove(0))); cell2.setCellValue(new HSSFRichTextString(list.remove(0)));
} }
ExportData expData = new ExportData(tp , list) ; ExportData expData = new ExportData(tp, list);
if(list.size()>0) { if (list.size() > 0) {
tempExportDatas.add(expData) ; tempExportDatas.add(expData);
if(list.size() > expData.getMaxcols()) { if (list.size() > expData.getMaxcols()) {
expData.setMaxcols(list.size()); expData.setMaxcols(list.size());
} }
} }
}else if(tp.isSeldata()){ } else if (tp.isSeldata()) {
SysDic sysDic = Dict.getInstance().getDicItem(String.valueOf(value.get(tp.getFieldname()))) ; SysDic sysDic = Dict.getInstance().getDicItem(String.valueOf(value.get(tp.getFieldname())));
if(sysDic!=null) { if (sysDic != null) {
cell2.setCellValue(new HSSFRichTextString(sysDic.getName())); cell2.setCellValue(new HSSFRichTextString(sysDic.getName()));
}else { } else {
List<SysDic> dicItemList = Dict.getInstance().getSysDic(tp.getSeldatacode()); List<SysDic> dicItemList = Dict.getInstance().getSysDic(tp.getSeldatacode());
if(dicItemList!=null && dicItemList.size() > 0) { if (dicItemList != null && dicItemList.size() > 0) {
for(SysDic dicItem : dicItemList) { for (SysDic dicItem : dicItemList) {
String s = ""; String s;
Object obj = value.get(tp.getFieldname()); Object obj = value.get(tp.getFieldname());
if(obj instanceof Boolean) { if (obj instanceof Boolean) {
s = (Boolean)obj?"1":"0"; s = (Boolean) obj ? "1" : "0";
}else { } else {
s= String.valueOf(value.get(tp.getFieldname())); s = String.valueOf(value.get(tp.getFieldname()));
} }
if(dicItem.getCode().equals(s)) { if (dicItem.getCode().equals(s)) {
cell2.setCellValue(new HSSFRichTextString(dicItem.getName())); break ; cell2.setCellValue(new HSSFRichTextString(dicItem.getName()));
break;
} }
} }
} }
} }
}else if(tp.isReffk() && !StringUtils.isBlank(tp.getReftbid())){ } else if (tp.isReffk() && !StringUtils.isBlank(tp.getReftbid())) {
String key = (String) value.get(tp.getFieldname()) ; String key = (String) value.get(tp.getFieldname());
String orgi = (String) value.get("orgi") ; String orgi = (String) value.get("orgi");
if(!StringUtils.isBlank(key) && !StringUtils.isBlank(orgi)) { if (!StringUtils.isBlank(key) && !StringUtils.isBlank(orgi)) {
DataExchangeInterface exchange = (DataExchangeInterface) MainContext.getContext().getBean(tp.getReftbid()) ; DataExchangeInterface exchange = (DataExchangeInterface) MainContext.getContext().getBean(tp.getReftbid());
Object refvalue = exchange.getDataByIdAndOrgi(key, orgi) ; Object refvalue = exchange.getDataByIdAndOrgi(key, orgi);
if(refvalue!=null) { if (refvalue != null) {
cell2.setCellValue(new HSSFRichTextString(refvalue.toString())); cell2.setCellValue(new HSSFRichTextString(refvalue.toString()));
} }
} }
}else{ } else {
cell2.setCellValue(new HSSFRichTextString(String.valueOf(value.get(tp.getFieldname())))); cell2.setCellValue(new HSSFRichTextString(String.valueOf(value.get(tp.getFieldname()))));
} }
} }
} }
if(tempExportDatas.size() > 0) { if (tempExportDatas.size() > 0) {
for(ExportData expData : tempExportDatas) { for (ExportData expData : tempExportDatas) {
for(int i=0 ; i<expData.getMaxcols() ; i++) { for (int i = 0; i < expData.getMaxcols(); i++) {
if(titleRow.getCell(cols + i) == null) { if (titleRow.getCell(cols + i) == null) {
Cell title = titleRow.createCell(cols + i); Cell title = titleRow.createCell(cols + i);
title.setCellStyle(firstStyle); title.setCellStyle(firstStyle);
title.setCellValue(new HSSFRichTextString(expData.getTp().getName())); title.setCellValue(new HSSFRichTextString(expData.getTp().getName()));
} }
} }
for(String itemValue : expData.getValues()) { for (String itemValue : expData.getValues()) {
Cell cell2 = row2.createCell(cols++); Cell cell2 = row2.createCell(cols++);
cell2.setCellValue(new HSSFRichTextString(itemValue)); cell2.setCellValue(new HSSFRichTextString(itemValue));
} }
} }
} }
rowNum ++ ; rowNum++;
} }
} }
} }
private CellStyle baseCellStyle(){ private CellStyle baseCellStyle() {
CellStyle cellStyle = wb.createCellStyle(); CellStyle cellStyle = wb.createCellStyle();
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); cellStyle.setAlignment(HorizontalAlignment.CENTER);
cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
cellStyle.setWrapText(true); cellStyle.setWrapText(true);
cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN); cellStyle.setBorderTop(BorderStyle.THIN);
cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN); cellStyle.setBorderLeft(BorderStyle.THIN);
cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN); cellStyle.setBorderRight(BorderStyle.THIN);
cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); cellStyle.setBorderBottom(BorderStyle.THIN);
Font font = wb.createFont(); Font font = wb.createFont();
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); font.setBold(true);
font.setFontName("宋体"); font.setFontName("宋体");
font.setFontHeight((short) 200); font.setFontHeight((short) 200);
cellStyle.setFont(font); cellStyle.setFont(font);