/**

* 民主推荐结果导出列表,班子换届

*

* @param formBean

* @param request

* @param response

* @param redirectAttributes

* @throws IOException

* @author KLX

* @throws ParseException importExcelMztjjgPoi

*/

@SuppressWarnings("deprecation")

@RequestMapping(value = "importExcelMztjjgPoi")

public String importExcelMztjjgPoi(FormBean formBean,String PROCESS_ID, HttpServletRequest request, HttpServletResponse response,

String PROCESS_TYPE,String D_NUM_ID,String DW_ID,String nodesFlag,String THTJ_NUM_ID) throws IOException {

//防止中文乱码

String HIGHER_AUTHORITY = java.net.URLDecoder.decode(request.getParameter("HIGHER_AUTHORITY"), "utf-8");

//谈话人员范围

String TALKRANGE ="xx";

//定义导出模板的标题

String title1 = "民主推荐票汇总(一轮)";

String title2 = "民主推荐票汇总(二轮)";

String TIME="";

Date date = new Date();

//取得当前日期xxxx年xx月xx日格式

SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日");

TIME = format.format(date.getTime());

//投票轮数标识

String twoVoteFlag = "1";

Map idMap1 = Maps.newHashMap();

idMap1.put("NUM_ID", D_NUM_ID);

idMap1.put("oneRound", "oneRound");

Map idMap2 = Maps.newHashMap();

idMap2.put("NUM_ID", D_NUM_ID);

idMap2.put("secondRound", "secondRound");

List> idList1 = democracyRecommendService.getMztjHytjId(idMap1);

List> idList2 = democracyRecommendService.getMztjHytjId(idMap2);

String hytjId1 ="";

String hytjId2 ="";

if(idList1 != null && idList1.size()>0){

hytjId1 = idList1.get(0).get("NUM_ID").toString();

}

if(idList2 != null && idList2.size()>0){

hytjId2 = idList2.get(0).get("NUM_ID").toString();

}

Map zghMap = Maps.newHashMap();

zghMap.put("PROCESS_ID", PROCESS_ID);

//1轮会议提推荐

Map hytjMap1 = Maps.newHashMap();

Map hytj1= null;

if(StringUtils.isNotEmpty(hytjId1)){

hytjMap1.put("NUM_ID", hytjId1);

hytj1= democracyRecommendService.getMztjHytjInfo(hytjMap1);

}

//2轮会议推荐

Map hytjMap2 = Maps.newHashMap();

Map hytj2 = null;

if(StringUtils.isNotEmpty(hytjId2)){

hytjMap2.put("NUM_ID", hytjId2);

hytj2 = democracyRecommendService.getMztjHytjInfo(hytjMap2);

}

//会议推荐1轮总人数

String SHOULD_NUM1 = "0";

//会议推荐2轮总人数

String SHOULD_NUM2 = "0";

//谈话推荐总人数

String SHOULD_NUM3 = "0";

Map thtj = null;

Map hytjMap3 = Maps.newHashMap();

if(StringUtils.isNotEmpty(PROCESS_ID)){

hytjMap3.put("NUM_ID", PROCESS_ID);

thtj = democracyRecommendService.getTHTJInfo(hytjMap3);

}

//取得1轮投票会议投票的人数

if(hytj1 != null && hytj1.size()>0 ){

if(hytj1.containsKey("SHOULD_NUM") && null != hytj1.get("SHOULD_NUM")&& !("").equals(hytj1.get("SHOULD_NUM"))){

SHOULD_NUM1 = hytj1.get("SHOULD_NUM").toString();

}

}

//取得2轮投票会议投票的人数

if(hytj2 != null && hytj2.size() >0){

if(hytj2.containsKey("SHOULD_NUM") && null != hytj2.get("SHOULD_NUM")&& !("").equals(hytj2.get("SHOULD_NUM"))){

SHOULD_NUM2 = hytj2.get("SHOULD_NUM").toString();

}

}

//取得2轮投票会议投票的人数

if(thtj != null && thtj.size() >0){

if(thtj.containsKey("ACTUAL_NUM") && null != thtj.get("ACTUAL_NUM")&& !("").equals(thtj.get("ACTUAL_NUM"))){

SHOULD_NUM3 = thtj.get("ACTUAL_NUM").toString();

}

if("1".equals(thtj.get("THTJ_RANGE").toString())){

TALKRANGE = "全体教职工";

}else if("2".equals(thtj.get("THTJ_RANGE").toString())){

TALKRANGE = "党政领导班子成员、两委委员、系所中心主任、工会主席、教师党支部书记、各类人才代表、教师(医教研人员)及党政管理人员代表等";

}else if("3".equals(thtj.get("THTJ_RANGE").toString())){

TALKRANGE = "党政领导班子成员、中层干部、副高及以上人员等";

}

}

//判断进行了几轮投票

if(null != nodesFlag){

if( 6 > Integer.parseInt(nodesFlag) && 0!=Integer.parseInt(nodesFlag)){

twoVoteFlag ="1";

}

else if( 6 <= Integer.parseInt(nodesFlag)){

twoVoteFlag ="2";

}

else if( 0 == Integer.parseInt(nodesFlag)){

twoVoteFlag ="2";

}

else{

twoVoteFlag ="1";

}

}

// 职务集合

Map postMap = Maps.newHashMap();

postMap.put("PROCESS_ID", PROCESS_ID);

//会议推荐和谈话推荐合并单元格的数量

int titleMergeCell = 0;

List> electivePostList = democracyRecommendService

.getelectivePostListByProcessId(postMap);

OutputStream fos = response.getOutputStream();

BufferedOutputStream bos = new BufferedOutputStream(fos);

ZipOutputStream zos = new ZipOutputStream(bos);

//创建HSSFWorkbook对象(excel的文档对象)

HSSFWorkbook wb = new HSSFWorkbook();

HSSFWorkbook wb1 = new HSSFWorkbook();

Map zghMap2 = Maps.newHashMap();

zghMap2.put("PROCESS_ID", PROCESS_ID);

//取得你任人集合,确认拟任人

List> quasiPersonList = democracyRecommendService.getQuasiPersonList(zghMap2,null);

String[] idArray = {};

if(quasiPersonList!=null){

idArray = new String[quasiPersonList.size()];

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

idArray[i] = (String) quasiPersonList.get(i).get("ZGH");

}

}

//取得党政班子成员

Map dzbzMap = Maps.newHashMap();

dzbzMap.put("DW_ID", DW_ID);

List> dzbzList = democracyRecommendService.getDZBZList(dzbzMap);

//1轮班子换届的导出结果集

if(Integer.parseInt(twoVoteFlag)>= 1){

Map mztjmap1 = Maps.newHashMap();

mztjmap1.put("THTJ_ID", THTJ_NUM_ID);

mztjmap1.put("HYTJ_ID", hytjId1);

mztjmap1.put("idArray", idArray);

//取得1轮民主土建结果

List> mztjJGBZHJlist =democracyRecommendService.getMZTJJGBZHJlist(mztjmap1);

//民主推荐总票数

List> MZTJJGBZHJSUM =democracyRecommendService.getMZTJJGBZHJSUM(mztjmap1);

List> newList = new ArrayList>();

boolean addFlag = true;

//循环赋值

if(mztjJGBZHJlist!= null && mztjJGBZHJlist.size()>0){

for(int i = 0;i

Map listMap = Maps.newHashMap();

for(int y = 0;y

if(newList.size() >0 ){

for(Map newObjMap:newList){

addFlag = true;

if(newObjMap.get("QUASI_ID").toString().equals(mztjJGBZHJlist.get(i).get("QUASI_ID").toString())){

addFlag = false;

break ;

}

}

}

if( addFlag && mztjJGBZHJlist.get(i).get("QUASI_ID").equals(mztjJGBZHJlist.get(y).get("QUASI_ID"))){

listMap.put("QUASI_ID", mztjJGBZHJlist.get(i).get("QUASI_ID"));

listMap.put("XM", mztjJGBZHJlist.get(i).get("XM"));

if(mztjJGBZHJlist.get(y).containsKey("POST_ID") && null !=mztjJGBZHJlist.get(y).get("POST_ID")){

listMap.put("POST_ID"+mztjJGBZHJlist.get(y).get("QUASI_ID")+mztjJGBZHJlist.get(y).get("POST_ID"), mztjJGBZHJlist.get(y).get("POST_ID"));

}

//得票数

if(mztjJGBZHJlist.get(y).containsKey("M_GET_NUM") && null !=mztjJGBZHJlist.get(y).get("M_GET_NUM")){

listMap.put("M_GET_NUM"+mztjJGBZHJlist.get(y).get("QUASI_ID")+mztjJGBZHJlist.get(y).get("POST_ID"), mztjJGBZHJlist.get(y).get("M_GET_NUM"));

}else{

listMap.put("M_GET_NUM"+mztjJGBZHJlist.get(y).get("QUASI_ID")+mztjJGBZHJlist.get(y).get("POST_ID"),"0");

}

//有效票数

if(mztjJGBZHJlist.get(y).containsKey("T_GET_NUM") && null !=mztjJGBZHJlist.get(y).get("T_GET_NUM")){

listMap.put("T_GET_NUM"+mztjJGBZHJlist.get(y).get("QUASI_ID")+mztjJGBZHJlist.get(y).get("POST_ID"), mztjJGBZHJlist.get(y).get("T_GET_NUM"));

}else{

listMap.put("T_GET_NUM"+mztjJGBZHJlist.get(y).get("QUASI_ID")+mztjJGBZHJlist.get(y).get("POST_ID"),"0");

}

}

}

//将相同的人的不同的职务不同会议或谈话的数据合为一行

if(addFlag){

newList.add(listMap);

}

}

}

String str1 = "中山大学"+HIGHER_AUTHORITY+"行政领导班子换届民主推荐情况"+"\n"+"(适用于行政班子换届,如开展摸底谈话请添加一栏,填写完敬请排版并调整为可直接打印版式)";

String str11 = "中山大学"+HIGHER_AUTHORITY+"行政领导班子换届民主推荐情况"+"\n";

//建立新的sheet对象(excel的表单)

HSSFSheet sheet=wb.createSheet(title1);

//在sheet里创建第一行,参数为行索引(excel的行),可以是0~65535之间的任何一个

HSSFRow row1=sheet.createRow(0);

//创建单元格(excel的单元格,参数为列索引,可以是0~255之间的任何一个

HSSFCellStyle cellStyle = wb.createCellStyle();

cellStyle.setWrapText(true);

cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);

cellStyle.setBottomBorderColor(HSSFColor.BLACK.index);

cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);

cellStyle.setLeftBorderColor(HSSFColor.BLACK.index);

cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);

cellStyle.setRightBorderColor(HSSFColor.BLACK.index);

cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);

HSSFCellStyle cellStyleDZ = wb.createCellStyle();

cellStyleDZ.setWrapText(true);

// HSSFWorkbook workbook1 = new HSSFWorkbook();

HSSFFont fontDZ = wb.createFont();

fontDZ.setFontHeightInPoints((short) 14);

cellStyleDZ.setFont(fontDZ);

cellStyleDZ.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 居中

HSSFCellStyle cellStyleDZHT = wb.createCellStyle(); // 人选姓名

cellStyleDZHT.setWrapText(true);

HSSFFont fontDZHT = wb.createFont();

fontDZHT.setFontHeightInPoints((short) 14);

// fontDZHT.setFontName("黑体");

fontDZHT.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); // 宽度

cellStyleDZHT.setFont(fontDZHT);

cellStyleDZHT.setBorderBottom(HSSFCellStyle.BORDER_THIN);

cellStyleDZHT.setBorderLeft(HSSFCellStyle.BORDER_THIN);

cellStyleDZHT.setBorderRight(HSSFCellStyle.BORDER_THIN);

cellStyleDZHT.setBorderTop(HSSFCellStyle.BORDER_THIN);

cellStyleDZHT.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 居中

HSSFCellStyle cellStyleDZHT1 = wb.createCellStyle(); // 推荐人选姓名

cellStyleDZHT.setWrapText(true);

HSSFFont fontDZHT1 = wb.createFont();

fontDZHT1.setFontHeightInPoints((short) 14);

cellStyleDZHT1.setFont(fontDZHT1);

cellStyleDZHT1.setBorderBottom(HSSFCellStyle.BORDER_THIN);

cellStyleDZHT1.setBorderLeft(HSSFCellStyle.BORDER_THIN);

cellStyleDZHT1.setBorderRight(HSSFCellStyle.BORDER_THIN);

cellStyleDZHT1.setBorderTop(HSSFCellStyle.BORDER_THIN);

cellStyleDZHT1.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 居中

HSSFCellStyle cellStyle1 = wb.createCellStyle();

cellStyle1.setWrapText(true);

cellStyle1.setWrapText(true);

HSSFFont fontQJZG1 = wb.createFont();

fontQJZG1.setFontName("楷体");

fontQJZG1.setFontHeightInPoints((short) 12);

cellStyle1.setFont(fontQJZG1);

//设置居中:

cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 居中

cellStyle1.setAlignment(HSSFCellStyle.ALIGN_LEFT); // 居中

HSSFCell cell=row1.createCell(0);

//TODO

cell.setCellStyle(cellStyle);

//设置单元格高度

row1.setHeight((short)800);

if(null != electivePostList && electivePostList.size() >0){

titleMergeCell = electivePostList.size();

//HSSFWorkbook workbook = new HSSFWorkbook();

HSSFFont font = wb.createFont();

font.setFontHeightInPoints((short) 14); // 字体高度

font.setFontName("宋体"); // 字体

//font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); // 宽度

HSSFFont font1 = wb.createFont();

font1.setFontHeightInPoints((short) 9); // 字体高度

font1.setFontName("宋体"); // 字体

//font1.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); // 宽度

//合并单元格CellRangeAddress构造参数依次表示起始行,截至行,起始列, 截至列

CellRangeAddress region = new CellRangeAddress(0,0,0,titleMergeCell+titleMergeCell+titleMergeCell); //给定要合并的单元格范围

sheet.addMergedRegion(region);

setBorderStyle(HSSFCellStyle.BORDER_THIN, region, sheet, wb);

HSSFRichTextString ts= new HSSFRichTextString(str1);

ts.applyFont(0,str11.length(),font);

ts.applyFont(str11.length(),ts.length(),font1);

cell.setCellValue(ts);

sheet.setDefaultColumnWidth(20);

sheet.setDefaultRowHeightInPoints(20);

//在sheet里创建第二行

HSSFRow row2=sheet.createRow(1);

row2.setHeight((short)500);

HSSFCell cell1=row2.createCell(0);

HSSFCell cell2= row2.createCell(1);

HSSFCell cell3=row2.createCell((1+titleMergeCell));

HSSFCell cell4=row2.createCell((1+titleMergeCell+titleMergeCell));

cell1.setCellStyle(cellStyle);

cell2.setCellStyle(cellStyle);

cell3.setCellStyle(cellStyle);

cell4.setCellStyle(cellStyle);

//上或者下从0开始会议推荐

CellRangeAddress region1 = new CellRangeAddress(1,1,1,(short) (titleMergeCell)); //给定要合并的单元格范围

// sheet.addMergedRegion(new Region(1, (short) 1, 1, (short) (titleMergeCell)));

sheet.addMergedRegion(region1);

setBorderStyle(HSSFCellStyle.BORDER_THIN, region1, sheet, wb);

//上或者下从0开始谈话推荐

CellRangeAddress region2 = new CellRangeAddress(1,1,(short)(1+titleMergeCell),(short) (titleMergeCell+titleMergeCell)); //给定要合并的单元格范围

sheet.addMergedRegion(region2);

setBorderStyle(HSSFCellStyle.BORDER_THIN, region2, sheet, wb);

// sheet.addMergedRegion(new Region(1, (short) (1+titleMergeCell), 1, (short) (titleMergeCell+titleMergeCell)));

//上或者下从0开始合计票

CellRangeAddress region3 = new CellRangeAddress(1,1,(short) (1+titleMergeCell+titleMergeCell),(short) (titleMergeCell+titleMergeCell+titleMergeCell)); //给定要合并的单元格范围

sheet.addMergedRegion(region3);

setBorderStyle(HSSFCellStyle.BORDER_THIN, region3, sheet, wb);

// sheet.addMergedRegion(new Region(1, (short) (1+titleMergeCell+titleMergeCell), 1, (short) (titleMergeCell+titleMergeCell+titleMergeCell)));

//创建单元格并设置单元格内容

HSSFCell cellrx = row2.createCell(0);

cellrx.setCellValue("人选姓名");

cellrx.setCellStyle(cellStyleDZHT1);

HSSFCell cellTJ = row2.createCell(1);

cellTJ.setCellValue("会议推荐("+SHOULD_NUM1+"人)");

cellTJ.setCellStyle(cellStyleDZHT1);

HSSFCell cellTJTJ = row2.createCell((1+titleMergeCell));

cellTJTJ.setCellValue("谈话推荐("+SHOULD_NUM3+"人)");

cellTJTJ.setCellStyle(cellStyleDZHT1);

HSSFCell cellHJP = row2.createCell((1+titleMergeCell+titleMergeCell));

cellHJP.setCellValue("合计票");

cellHJP.setCellStyle(cellStyleDZHT1);

HSSFRow row3=sheet.createRow(2);

row3.setHeight((short)500);

List> postList = new ArrayList>();

postList.addAll(electivePostList);

postList.addAll(electivePostList);

postList.addAll(electivePostList);

//职务标题

for(int y=0;y

HSSFCell cellrow3 = row3.createCell(y+1);

cellrow3.setCellStyle(cellStyle);

cellrow3.setCellValue(postList.get(y).get("EP_POST_NAME").toString());

}

//用于现党政班子成员推荐情况表格打印的索引

int rowIndex = 2;

//循环赋值

if(newList.size() > 0 ){

for(int i= 0;i

HSSFRow row5=sheet.createRow(3+i);

//设置单元格高度

row5.setHeight((short)500);

HSSFCell cellrow05 = row5.createCell(0);

cellrow05.setCellStyle(cellStyle);

cellrow05.setCellValue(newList.get(i).get("XM").toString());

for(int y=0;y

if(y<=y && y

for(int a =0;a

if(newList.get(i).containsKey("POST_ID"+newList.get(i).get("QUASI_ID").toString()+electivePostList.get(y).get("EP_NUM_ID").toString()) && (newList.get(i).get("POST_ID"+newList.get(i).get("QUASI_ID").toString()+electivePostList.get(y).get("EP_NUM_ID").toString())).equals(electivePostList.get(y).get("EP_NUM_ID").toString())){

HSSFCell cellrow5 = row5.createCell(y+1);

cellrow5.setCellStyle(cellStyle);

cellrow5.setCellValue(newList.get(i).get("M_GET_NUM"+newList.get(i).get("QUASI_ID").toString()+electivePostList.get(y).get("EP_NUM_ID").toString()).toString());

}else{

HSSFCell cellrow5 = row5.createCell(y+1);

cellrow5.setCellStyle(cellStyle);

cellrow5.setCellValue("0");

}

}

}

if(titleMergeCell<=y && y

int num = titleMergeCell+titleMergeCell - y;

int index = 0;

if(0!=num){

if(0!=(num% titleMergeCell)){

index = titleMergeCell - num% titleMergeCell;

}

}

for(int a =0;a

if(newList.get(i).containsKey("POST_ID"+newList.get(i).get("QUASI_ID").toString()+electivePostList.get(index).get("EP_NUM_ID").toString()) && (newList.get(i).get("POST_ID"+newList.get(i).get("QUASI_ID").toString()+electivePostList.get(index).get("EP_NUM_ID").toString())).equals(electivePostList.get(index).get("EP_NUM_ID").toString())){

HSSFCell cellrow5 = row5.createCell(y+1);

cellrow5.setCellStyle(cellStyle);

cellrow5.setCellValue(newList.get(i).get("T_GET_NUM"+newList.get(i).get("QUASI_ID").toString()+electivePostList.get(index).get("EP_NUM_ID").toString()).toString());

}else{

HSSFCell cellrow5 = row5.createCell(y+1);

cellrow5.setCellStyle(cellStyle);

cellrow5.setCellValue("0");

}

}

}

if((titleMergeCell+titleMergeCell) <=y && y

int num = titleMergeCell+titleMergeCell+titleMergeCell - y;

int index = 0;

if(0!=num){

if(0!=(num% titleMergeCell)){

index =titleMergeCell - num% titleMergeCell;

}

}

String postid = electivePostList.get(index).get("EP_NUM_ID").toString();

if(MZTJJGBZHJSUM != null && MZTJJGBZHJSUM.size()>0){

String val = "0";

for(Map p:MZTJJGBZHJSUM){

if(postid.equals(p.get("POST_ID"))){

if(p.containsKey("heji")){

val = p.get("heji").toString();

}

}else{

}

}

String stcount1 = "0";

String stcount2 = "0";

if(row5.getCell(1+index)!=null){

row5.getCell(1+index).setCellType(Cell.CELL_TYPE_STRING);

stcount1 = row5.getCell(1+index).getStringCellValue().replace(" ", "");

}

if(row5.getCell(1+titleMergeCell+index)!=null){

row5.getCell(1+titleMergeCell+index).setCellType(Cell.CELL_TYPE_STRING);

stcount2 = row5.getCell(1+titleMergeCell+index).getStringCellValue().replace(" ", "");

}

int count1 = Integer.parseInt(stcount1);

int count2 = Integer.parseInt(stcount2);

HSSFCell cellrow5 = row5.createCell(y+1);

cellrow5.setCellStyle(cellStyle);

cellrow5.setCellValue(count1+count2);

}else{

HSSFCell cellrow5 = row5.createCell(y+1);

cellrow5.setCellStyle(cellStyle);

cellrow5.setCellValue("0");

}

}

}

rowIndex = 3+i;

}

}

//打印一行空格

HSSFRow row6=sheet.createRow(rowIndex+1);

row6.setHeight((short)500);

if(titleMergeCell != 0){

for(int t=0;t

row6.createCell(t);

}

}

//打印现党政班子成员推荐情况

HSSFRow row7=sheet.createRow(rowIndex+2);

row7.setHeight((short)500);

//循环打印现党政班子成员推荐情况

//合并单元格CellRangeAddress构造参数依次表示起始行,截至行,起始列, 截至列

CellRangeAddress region4 = new CellRangeAddress(rowIndex+2,rowIndex+2,0,(short) (titleMergeCell+titleMergeCell+titleMergeCell)); //给定要合并的单元格范围

sheet.addMergedRegion(region4);

// setBorderStyle(HSSFCellStyle.BORDER_THIN, region4, sheet, wb);

// sheet.addMergedRegion(new Region(rowIndex+2, (short) 0, rowIndex+2, (short) (titleMergeCell+titleMergeCell+titleMergeCell)));

HSSFCell cell01=row7.createCell(0);

cell01.setCellValue("现党政班子成员推荐情况");

cell01.setCellStyle(cellStyleDZ);

打印现党政班子成员推荐情况标题

HSSFRow row8=sheet.createRow(rowIndex+3);

row8.setHeight((short)500);

HSSFCell cell11=row8.createCell(0);

HSSFCell cell12= row8.createCell(1);

HSSFCell cell13=row8.createCell(2);

cell11.setCellStyle(cellStyleDZHT);

cell12.setCellStyle(cellStyleDZHT);

cell13.setCellStyle(cellStyleDZHT);

//创建单元格并设置单元格内容

cell11.setCellValue("姓名");

cell12.setCellValue("现职务");

cell13.setCellValue("推荐人选姓名");

//上或者下从0开始合计票

CellRangeAddress region5 = new CellRangeAddress(rowIndex+3,rowIndex+3,2,(short) (titleMergeCell+titleMergeCell+titleMergeCell)); //给定要合并的单元格范围

sheet.addMergedRegion(region5);

setBorderStyle(HSSFCellStyle.BORDER_THIN, region5, sheet, wb);

// sheet.addMergedRegion(new Region((rowIndex+3), (short) 2, (rowIndex+3), (short) (titleMergeCell+titleMergeCell+titleMergeCell)));

int markIndex = rowIndex+3;

if(null != dzbzList && dzbzList.size() >0 ){

//循环遍历姓名,现职务,拟任职务

for(int y=0;y

HSSFRow row9=sheet.createRow(rowIndex+3+y+1);

row9.setHeight((short)500);

HSSFCell cellrow5 = row9.createCell(0);

cellrow5.setCellStyle(cellStyle);

cellrow5.setCellValue(MapUtils.getString(dzbzList.get(y), "XM",""));

HSSFCell cellrow51 = row9.createCell(1);

cellrow51.setCellStyle(cellStyle);

cellrow51.setCellValue(MapUtils.getString(dzbzList.get(y), "DUTIES",""));

for(int i=0;i

row9.createCell(i+2).setCellStyle(cellStyle);

}

CellRangeAddress region51 = new CellRangeAddress((rowIndex+3+y+1),(rowIndex+3+y+1),2,(short) (titleMergeCell+titleMergeCell+titleMergeCell)); //给定要合并的单元格范围

sheet.addMergedRegion(region51);

markIndex = rowIndex+3+y+1;

}

}else{

//循环遍历姓名,现职务,拟任职务

for(int y=0;y<1;y++){

HSSFRow row9=sheet.createRow(rowIndex+3+y+1);

row9.setHeight((short)500);

row9.createCell(0).setCellStyle(cellStyle);

row9.createCell(1).setCellStyle(cellStyle);

for(int i=0;i

row9.createCell(i+2).setCellStyle(cellStyle);

}

CellRangeAddress region51 = new CellRangeAddress((rowIndex+3+y+1),(rowIndex+3+y+1),2,(short) (titleMergeCell+titleMergeCell+titleMergeCell)); //给定要合并的单元格范围

sheet.addMergedRegion(region51);

markIndex = rowIndex+3+y+1;

}

}

String mark = "注:"+TALKRANGE;

mark=mark+ "(此处根据实际填写),应到XX人,实到XX人;发出XX张票,收回XX票,全部有效。";

mark=mark+"\n"+"统计人:";

mark=mark+"\n"+"复核人:";

mark=mark+"\n"+"工作组: ";

mark=mark+"\n"+"工作组组长(签字): ";

mark=mark+"\n"+TIME;

//打印备注

HSSFRow row10=sheet.createRow(markIndex+1);

//合并单元格CellRangeAddress构造参数依次表示起始行,截至行,起始列, 截至列

sheet.addMergedRegion(new Region(markIndex+1, (short) 0, markIndex+1, (short) (titleMergeCell+titleMergeCell+titleMergeCell)));

HSSFCell cell02=row10.createCell(0);

cell02.setCellValue(mark);

cell02.setCellStyle(cellStyle1);

//设置单元格高度

row10.setHeight((short)2500);

}

}

//2轮班子换届的导出结果集

if(Integer.parseInt(twoVoteFlag)>= 2){

Map mztjmap1 = Maps.newHashMap();

mztjmap1.put("THTJ_ID", THTJ_NUM_ID);

mztjmap1.put("HYTJ_ID", hytjId2);

mztjmap1.put("idArray", idArray);

//取得1轮民主土建结果

List> mztjJGBZHJlist =democracyRecommendService.getMZTJJGBZHJlist(mztjmap1);

//民主推荐总票数

List> MZTJJGBZHJSUM =democracyRecommendService.getMZTJJGBZHJSUM(mztjmap1);

List> newList = new ArrayList>();

boolean addFlag = true;

//循环赋值

if(mztjJGBZHJlist!= null && mztjJGBZHJlist.size()>0){

for(int i = 0;i

Map listMap = Maps.newHashMap();

for(int y = 0;y

if(newList.size() >0 ){

for(Map newObjMap:newList){

addFlag = true;

if(newObjMap.get("QUASI_ID").toString().equals(mztjJGBZHJlist.get(i).get("QUASI_ID").toString())){

addFlag = false;

break ;

}

}

}

if( addFlag && mztjJGBZHJlist.get(i).get("QUASI_ID").equals(mztjJGBZHJlist.get(y).get("QUASI_ID"))){

listMap.put("QUASI_ID", mztjJGBZHJlist.get(i).get("QUASI_ID"));

listMap.put("XM", mztjJGBZHJlist.get(i).get("XM"));

if(mztjJGBZHJlist.get(y).containsKey("POST_ID") && null !=mztjJGBZHJlist.get(y).get("POST_ID")){

listMap.put("POST_ID"+mztjJGBZHJlist.get(y).get("QUASI_ID")+mztjJGBZHJlist.get(y).get("POST_ID"), mztjJGBZHJlist.get(y).get("POST_ID"));

}

//得票数

if(mztjJGBZHJlist.get(y).containsKey("M_GET_NUM") && null !=mztjJGBZHJlist.get(y).get("M_GET_NUM")){

listMap.put("M_GET_NUM"+mztjJGBZHJlist.get(y).get("QUASI_ID")+mztjJGBZHJlist.get(y).get("POST_ID"), mztjJGBZHJlist.get(y).get("M_GET_NUM"));

}else{

listMap.put("M_GET_NUM"+mztjJGBZHJlist.get(y).get("QUASI_ID")+mztjJGBZHJlist.get(y).get("POST_ID"),"0");

}

//有效票数

if(mztjJGBZHJlist.get(y).containsKey("T_GET_NUM") && null !=mztjJGBZHJlist.get(y).get("T_GET_NUM")){

listMap.put("T_GET_NUM"+mztjJGBZHJlist.get(y).get("QUASI_ID")+mztjJGBZHJlist.get(y).get("POST_ID"), mztjJGBZHJlist.get(y).get("T_GET_NUM"));

}else{

listMap.put("T_GET_NUM"+mztjJGBZHJlist.get(y).get("QUASI_ID")+mztjJGBZHJlist.get(y).get("POST_ID"),"0");

}

}

}

//将相同的人的不同的职务不同会议或谈话的数据合为一行

if(addFlag){

newList.add(listMap);

}

}

}

//建立新的sheet对象(excel的表单)

HSSFSheet sheet=wb1.createSheet(title2);

//在sheet里创建第一行,参数为行索引(excel的行),可以是0~65535之间的任何一个

HSSFRow row1=sheet.createRow(0);

//创建单元格(excel的单元格,参数为列索引,可以是0~255之间的任何一个

HSSFCellStyle cellStyle = wb1.createCellStyle();

cellStyle.setWrapText(true);

cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);

cellStyle.setBottomBorderColor(HSSFColor.BLACK.index);

cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);

cellStyle.setLeftBorderColor(HSSFColor.BLACK.index);

cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);

cellStyle.setRightBorderColor(HSSFColor.BLACK.index);

cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);

HSSFCellStyle cellStyleDZ = wb1.createCellStyle();

cellStyleDZ.setWrapText(true);

HSSFFont fontDZ = wb1.createFont();

fontDZ.setFontHeightInPoints((short) 14);

cellStyleDZ.setFont(fontDZ);

cellStyleDZ.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 居中

HSSFCellStyle cellStyleDZHT = wb1.createCellStyle();

cellStyleDZHT.setWrapText(true);

HSSFFont fontDZHT = wb1.createFont();

fontDZHT.setFontHeightInPoints((short) 14);

fontDZHT.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); // 宽度

cellStyleDZHT.setFont(fontDZHT);

cellStyleDZHT.setBorderBottom(HSSFCellStyle.BORDER_THIN);

cellStyleDZHT.setBorderLeft(HSSFCellStyle.BORDER_THIN);

cellStyleDZHT.setBorderRight(HSSFCellStyle.BORDER_THIN);

cellStyleDZHT.setBorderTop(HSSFCellStyle.BORDER_THIN);

cellStyleDZHT.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 居中

HSSFCellStyle cellStyleDZHT1 = wb1.createCellStyle();

cellStyleDZHT.setWrapText(true);

HSSFFont fontDZHT1 = wb1.createFont();

fontDZHT1.setFontHeightInPoints((short) 14);

cellStyleDZHT1.setFont(fontDZHT1);

cellStyleDZHT1.setBorderBottom(HSSFCellStyle.BORDER_THIN);

cellStyleDZHT1.setBorderLeft(HSSFCellStyle.BORDER_THIN);

cellStyleDZHT1.setBorderRight(HSSFCellStyle.BORDER_THIN);

cellStyleDZHT1.setBorderTop(HSSFCellStyle.BORDER_THIN);

cellStyleDZHT1.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 居中

HSSFCellStyle cellStyle1 = wb1.createCellStyle();

cellStyle1.setWrapText(true);

cellStyle1.setWrapText(true);

HSSFFont fontQJZG1 = wb1.createFont();

fontQJZG1.setFontHeightInPoints((short) 12);

cellStyle1.setFont(fontQJZG1);

//设置居中:

cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 居中

cellStyle1.setAlignment(HSSFCellStyle.ALIGN_LEFT); // 居中

//设置居中:

cellStyle1.setAlignment(HSSFCellStyle.ALIGN_LEFT); // 居中

HSSFCell cell=row1.createCell(0);

cell.setCellStyle(cellStyle);

//设置单元格高度

row1.setHeight((short)800);

if(null != electivePostList && electivePostList.size() >0){

titleMergeCell = electivePostList.size();

HSSFFont font = wb1.createFont();

font.setFontHeightInPoints((short) 14); // 字体高度

font.setFontName("宋体"); // 字体

HSSFFont font1 = wb1.createFont();

font1.setFontHeightInPoints((short) 9); // 字体高度

font1.setFontName("宋体"); // 字体

String str2 = "中山大学"+HIGHER_AUTHORITY+"行政领导班子换届民主推荐情况"+"\n"+"(适用于行政班子换届,如开展摸底谈话请添加一栏,填写完敬请排版并调整为可直接打印版式)";

String str22 = "中山大学"+HIGHER_AUTHORITY+"行政领导班子换届民主推荐情况"+"\n";

// cell.setCellStyle(cellStyle); //设置单元格内容

// cell.setCellValue(str2);

//合并单元格CellRangeAddress构造参数依次表示起始行,截至行,起始列, 截至列

CellRangeAddress region = new CellRangeAddress(0,0,0,titleMergeCell+titleMergeCell+titleMergeCell); //给定要合并的单元格范围

sheet.addMergedRegion(region);

setBorderStyle(HSSFCellStyle.BORDER_THIN, region, sheet, wb1);

HSSFRichTextString ts= new HSSFRichTextString(str22);

ts.applyFont(0,str22.length(),font);

ts.applyFont(str22.length(),ts.length(),font1);

cell.setCellValue(ts);

sheet.setDefaultColumnWidth(20);// 设置列宽

sheet.setDefaultRowHeightInPoints(20);

//在sheet里创建第二行

HSSFRow row2=sheet.createRow(1);

row2.setHeight((short)500);

HSSFCell cell1=row2.createCell(0);

HSSFCell cell2= row2.createCell(1);

HSSFCell cell3=row2.createCell((1+titleMergeCell));

HSSFCell cell4=row2.createCell((1+titleMergeCell+titleMergeCell));

cell1.setCellStyle(cellStyle);

cell2.setCellStyle(cellStyle);

cell3.setCellStyle(cellStyle);

cell4.setCellStyle(cellStyle);

//上或者下从0开始会议推荐

CellRangeAddress region1 = new CellRangeAddress(1,1,1,(short) (titleMergeCell)); //给定要合并的单元格范围

// sheet.addMergedRegion(new Region(1, (short) 1, 1, (short) (titleMergeCell)));

sheet.addMergedRegion(region1);

setBorderStyle(HSSFCellStyle.BORDER_THIN, region1, sheet, wb1);

//上或者下从0开始谈话推荐

CellRangeAddress region2 = new CellRangeAddress(1,1,(short)(1+titleMergeCell),(short) (titleMergeCell+titleMergeCell)); //给定要合并的单元格范围

sheet.addMergedRegion(region2);

setBorderStyle(HSSFCellStyle.BORDER_THIN, region2, sheet, wb1);

// sheet.addMergedRegion(new Region(1, (short) (1+titleMergeCell), 1, (short) (titleMergeCell+titleMergeCell)));

//上或者下从0开始合计票

CellRangeAddress region3 = new CellRangeAddress(1,1,(short) (1+titleMergeCell+titleMergeCell),(short) (titleMergeCell+titleMergeCell+titleMergeCell)); //给定要合并的单元格范围

sheet.addMergedRegion(region3);

setBorderStyle(HSSFCellStyle.BORDER_THIN, region3, sheet, wb1);

//创建单元格并设置单元格内容

//创建单元格并设置单元格内容

HSSFCell cellrx = row2.createCell(0);

cellrx.setCellValue("人选姓名");

cellrx.setCellStyle(cellStyleDZHT1);

HSSFCell cellTJ = row2.createCell(1);

cellTJ.setCellValue("会议推荐("+SHOULD_NUM1+"人)");

cellTJ.setCellStyle(cellStyleDZHT1);

HSSFCell cellTJTJ = row2.createCell((1+titleMergeCell));

cellTJTJ.setCellValue("谈话推荐("+SHOULD_NUM3+"人)");

cellTJTJ.setCellStyle(cellStyleDZHT1);

HSSFCell cellHJP = row2.createCell((1+titleMergeCell+titleMergeCell));

cellHJP.setCellValue("合计票");

cellHJP.setCellStyle(cellStyleDZHT1);

HSSFRow row3=sheet.createRow(2);

row3.setHeight((short)500);

List> postList = new ArrayList>();

postList.addAll(electivePostList);

postList.addAll(electivePostList);

postList.addAll(electivePostList);

//职务标题

for(int y=0;y

HSSFCell cellrow3 = row3.createCell(y+1);

cellrow3.setCellStyle(cellStyle);

cellrow3.setCellValue(postList.get(y).get("EP_POST_NAME").toString());

}

int rowIndex = 3;

//循环赋值

if(newList.size() > 0 ){

for(int i= 0;i

HSSFRow row5=sheet.createRow(3+i);

row5.setHeight((short)500);

HSSFCell cellrow05 = row5.createCell(0);

cellrow05.setCellStyle(cellStyle);

cellrow05.setCellValue(newList.get(i).get("XM").toString());

for(int y=0;y

if(y<=y && y

for(int a =0;a

if(newList.get(i).containsKey("POST_ID"+newList.get(i).get("QUASI_ID").toString()+electivePostList.get(y).get("EP_NUM_ID").toString()) && (newList.get(i).get("POST_ID"+newList.get(i).get("QUASI_ID").toString()+electivePostList.get(y).get("EP_NUM_ID").toString())).equals(electivePostList.get(y).get("EP_NUM_ID").toString())){

HSSFCell cellrow5 = row5.createCell(y+1);

cellrow5.setCellStyle(cellStyle);

cellrow5.setCellValue(newList.get(i).get("M_GET_NUM"+newList.get(i).get("QUASI_ID").toString()+electivePostList.get(y).get("EP_NUM_ID").toString()).toString());

}else{

HSSFCell cellrow5 = row5.createCell(y+1);

cellrow5.setCellStyle(cellStyle);

cellrow5.setCellValue("0");

}

}

}

if(titleMergeCell<=y && y

int num = titleMergeCell+titleMergeCell - y;

int index = 0;

if(0!=num){

if(0!=(num% titleMergeCell)){

index = titleMergeCell - num% titleMergeCell;

}

}

for(int a =0;a

if(newList.get(i).containsKey("POST_ID"+newList.get(i).get("QUASI_ID").toString()+electivePostList.get(index).get("EP_NUM_ID").toString()) && (newList.get(i).get("POST_ID"+newList.get(i).get("QUASI_ID").toString()+electivePostList.get(index).get("EP_NUM_ID").toString())).equals(electivePostList.get(index).get("EP_NUM_ID").toString())){

HSSFCell cellrow5 = row5.createCell(y+1);

cellrow5.setCellStyle(cellStyle);

cellrow5.setCellValue(newList.get(i).get("T_GET_NUM"+newList.get(i).get("QUASI_ID").toString()+electivePostList.get(index).get("EP_NUM_ID").toString()).toString());

}else{

HSSFCell cellrow5 = row5.createCell(y+1);

cellrow5.setCellStyle(cellStyle);

cellrow5.setCellValue("0");

}

}

}

if((titleMergeCell+titleMergeCell) <=y && y

int num = titleMergeCell+titleMergeCell+titleMergeCell - y;

int index = 0;

if(0!=num){

if(0!=(num% titleMergeCell)){

index =titleMergeCell - num% titleMergeCell;

}

}

String postid = electivePostList.get(index).get("EP_NUM_ID").toString();

if(MZTJJGBZHJSUM != null && MZTJJGBZHJSUM.size()>0){

String val = "0";

for(Map p:MZTJJGBZHJSUM){

if(postid.equals(p.get("POST_ID"))){

if(p.containsKey("heji")){

val = p.get("heji").toString();

}

}else{

}

}

String stcount1 = "0";

String stcount2 = "0";

if(row5.getCell(1+index)!=null){

row5.getCell(1+index).setCellType(Cell.CELL_TYPE_STRING);

stcount1 = row5.getCell(1+index).getStringCellValue().replace(" ", "");

}

if(row5.getCell(1+titleMergeCell+index)!=null){

row5.getCell(1+titleMergeCell+index).setCellType(Cell.CELL_TYPE_STRING);

stcount2 = row5.getCell(1+titleMergeCell+index).getStringCellValue().replace(" ", "");

}

int count1 = Integer.parseInt(stcount1);

int count2 = Integer.parseInt(stcount2);

HSSFCell cellrow5 = row5.createCell(y+1);

cellrow5.setCellStyle(cellStyle);

cellrow5.setCellValue(count1+count2);

}else{

HSSFCell cellrow5 = row5.createCell(y+1);

cellrow5.setCellStyle(cellStyle);

cellrow5.setCellValue("0");

}

}

}

rowIndex = 3+i;

}

}

//循环打印现党政班子成员推荐情况

//打印一行空格

HSSFRow row6=sheet.createRow(rowIndex+1);

row6.setHeight((short)500);

if(titleMergeCell != 0){

for(int t=0;t

row6.createCell(t);

}

}

//打印现党政班子成员推荐情况

HSSFRow row7=sheet.createRow(rowIndex+2);

row7.setHeight((short)500);

//循环打印现党政班子成员推荐情况

//合并单元格CellRangeAddress构造参数依次表示起始行,截至行,起始列, 截至列

CellRangeAddress region4 = new CellRangeAddress(rowIndex+2,rowIndex+2,0,(short) (titleMergeCell+titleMergeCell+titleMergeCell)); //给定要合并的单元格范围

sheet.addMergedRegion(region4);

HSSFCell cell01=row7.createCell(0);

cell01.setCellValue("现党政班子成员推荐情况");

cell01.setCellStyle(cellStyleDZ);

打印现党政班子成员推荐情况标题

HSSFRow row8=sheet.createRow(rowIndex+3);

row8.setHeight((short)500);

HSSFCell cell11=row8.createCell(0);

HSSFCell cell12= row8.createCell(1);

HSSFCell cell13=row8.createCell(2);

cell11.setCellStyle(cellStyleDZHT);

cell12.setCellStyle(cellStyleDZHT);

cell13.setCellStyle(cellStyleDZHT);

//创建单元格并设置单元格内容

cell11.setCellValue("姓名");

cell12.setCellValue("现职务");

cell13.setCellValue("推荐人选姓名");

//上或者下从0开始合计票

CellRangeAddress region5 = new CellRangeAddress(rowIndex+3,rowIndex+3,2,(short) (titleMergeCell+titleMergeCell+titleMergeCell)); //给定要合并的单元格范围

sheet.addMergedRegion(region5);

setBorderStyle(HSSFCellStyle.BORDER_THIN, region5, sheet, wb1);

int markIndex = rowIndex+3;

//循环遍历姓名,现职务,拟任职务

if(null != dzbzList && dzbzList.size() >0 ){

//循环遍历姓名,现职务,拟任职务

for(int y=0;y

HSSFRow row9=sheet.createRow(rowIndex+3+y+1);

row9.setHeight((short)500);

HSSFCell cellrow5 = row9.createCell(0);

cellrow5.setCellStyle(cellStyle);

cellrow5.setCellValue(MapUtils.getString(dzbzList.get(y), "XM",""));

HSSFCell cellrow51 = row9.createCell(1);

cellrow51.setCellStyle(cellStyle);

cellrow51.setCellValue(MapUtils.getString(dzbzList.get(y), "DUTIES",""));

for(int i=0;i

row9.createCell(i+2).setCellStyle(cellStyle);

}

CellRangeAddress region51 = new CellRangeAddress((rowIndex+3+y+1),(rowIndex+3+y+1),2,(short) (titleMergeCell+titleMergeCell+titleMergeCell)); //给定要合并的单元格范围

sheet.addMergedRegion(region51);

markIndex = rowIndex+3+y+1;

}

}else{

//循环遍历姓名,现职务,拟任职务

for(int y=0;y<1;y++){

HSSFRow row9=sheet.createRow(rowIndex+3+y+1);

row9.setHeight((short)500);

row9.createCell(0).setCellStyle(cellStyle);

row9.createCell(1).setCellStyle(cellStyle);

for(int i=0;i

row9.createCell(i+2).setCellStyle(cellStyle);

}

CellRangeAddress region51 = new CellRangeAddress((rowIndex+3+y+1),(rowIndex+3+y+1),2,(short) (titleMergeCell+titleMergeCell+titleMergeCell)); //给定要合并的单元格范围

sheet.addMergedRegion(region51);

markIndex = rowIndex+3+y+1;

}

}

String mark = "注:"+TALKRANGE;

mark=mark+ "(此处根据实际填写),应到XX人,实到XX人;发出XX张票,收回XX票,全部有效。";

mark=mark+"\n"+"统计人:";

mark=mark+"\n"+"复核人:";

mark=mark+"\n"+"工作组: ";

mark=mark+"\n"+"工作组组长(签字): ";

mark=mark+"\n"+TIME;

//打印备注

HSSFRow row10=sheet.createRow(markIndex+1);

row10.setHeight((short)500);

//合并单元格CellRangeAddress构造参数依次表示起始行,截至行,起始列, 截至列

sheet.addMergedRegion(new Region(markIndex+1, (short) 0, markIndex+1, (short) (titleMergeCell+titleMergeCell+titleMergeCell)));

HSSFCell cell02=row10.createCell(0);

cell02.setCellValue(mark);

cell02.setCellStyle(cellStyle1);

//设置单元格高度

row10.setHeight((short)2000);

}

}

if(Integer.parseInt(twoVoteFlag)>= 1){

//定义文件的输出流,但是这是作为zip流的一部分

ByteArrayOutputStream output = new ByteArrayOutputStream();

//流文件

String filename = "民主推荐票汇总(一轮)";

wb.write(output);

//命名文件

zos.putNextEntry(new ZipEntry(filename+".xls"));

response.setHeader("Content-disposition", "attachment;success=true;filename =" +new String(filename.getBytes("utf-8"),"iso-8859-1")+ ".zip");

//把xlsx输出流作为输入流输入到zip输出流中

zos.write(output.toByteArray());

zos.closeEntry();

output.close();

}

if(Integer.parseInt(twoVoteFlag)>= 2){

//定义文件的输出流,但是这是作为zip流的一部分

ByteArrayOutputStream output = new ByteArrayOutputStream();

//流文件

String filename ="民主推荐票汇总(二轮)";

wb1.write(output);

zos.putNextEntry(new ZipEntry(filename+".xls"));// 生成压缩文件的文件

response.setHeader("Content-disposition", "attachment;success=true;filename =" +new String(filename.getBytes("utf-8"),"iso-8859-1")+ ".zip");

//把xlsx输出流作为输入流输入到zip输出流中

zos.write(output.toByteArray());

zos.closeEntry();

output.close();

}

zos.flush();

zos.close();

return null;

}

======设置边框=setBorderStyle=============

public void setBorderStyle(int border, CellRangeAddress region, HSSFSheet sheet, HSSFWorkbook wb){

RegionUtil.setBorderBottom(border, region, sheet, wb);//下边框

RegionUtil.setBorderLeft(border, region, sheet, wb); //左边框

RegionUtil.setBorderRight(border, region, sheet, wb); //右边框

RegionUtil.setBorderTop(border, region, sheet, wb); //上边框

}

pdfpcell输出换行_poi导出Excel(cell单元格里的一串文字,换行显示,设置字体)...相关推荐

  1. java导出excel 边框不全_POI 导出Excel合并单元格后部分边框不显示

    用户需要导出自定义表格,其中合并单元格样式遇到的问题,合并后只显示第一行第一列的边框,其他边框不显示,于是遍查百度,寻到一点思路 ①了解Excel绘制原理 ②了解绘制Excel顺序 ③绘制Excel单 ...

  2. springboot项目导出excel 合并单元格表格

    springboot项目导出excel 合并单元格表格 导出效果 业务controller 业务数据 业务实体类 注解MyExcel.java 注解 MyExcels 导出工具类MyExcelUtil ...

  3. 导出excel此单元格中的数字为文本格式,或者其前面有撇号

    前言: 无论大家使用的是java,js,.net等技术导出excel,都会出现下面的问题. 这篇文章只提供解决思路,以及用easyexcel导出 的处理方式,其他技术大家可以举一反三. 1.导出exc ...

  4. 用EasyPoi导出Excel中单元格图片(线上阿里云)

    用EasyPoi导出Excel中单元格图片(线上阿里云): 导出数据需要包含图片 问题描述 提示:这里描述项目中遇到的问题: 数据库中存储图片格式是阿里云(oss)的图片url,导出excel显示图片 ...

  5. C#中导出Excel的单元格属性设置

    A.单元格格式设置,默认为常规类型:Excel Excel.Range r =mySheet.get_Range(mySheet.Cells[1,1],mySheet.Cells[DT.Rows.Co ...

  6. POI导出——Excel实现单元格的背景色填充

    1.背景 随着业务需求的扩充,简简单单的Excel导出已经不能满足客户的胃口了.而POI api这个家伙里面的坑有时候真的是让你分分钟没有脾气,所以打算记录下来,分享一下poi的坑及其解决方法. 2. ...

  7. java导出excel合并单元格

    今天是2018最后一天了,废话就不多说了直接上干货吧! 1.java导出excel用到POI所有jar包 ,大家可以直接到下面地址下载点击打开链接 2.导出excel的方法 package org; ...

  8. poi导出Excel合并单元格、设置打印参数页眉页脚等

    由于生成文件不能落地,使用SXSSFWorkBook来对excel的导出工作 生成excel步骤: 1.创建workbook SXSSFWorkbook workbook=new SXSSFWorkb ...

  9. POI导出EXCEL合并单元格对象嵌套List数据

    导出EXCEL 在实际的开发过程当中,我们会遇到一些比较复杂的导出需求,例如需要导出的实体类中需要嵌套集合对象等,正好最近碰到了所以分享出来,希望对大家有帮助 一.POI是什么 简单的说就是Apach ...

最新文章

  1. puppet最新源码包安装学习笔记
  2. 如何通过SQL按内容拆分字段(将一个字段值拆分两个字段)
  3. Java多线程:易失性变量,事前关联和内存一致性
  4. 数据结构—排序算法总结(插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序、合并排序、计数排序)
  5. 内蒙古自治区通辽市谷歌高清卫星地图下载(百度网盘离线包下载)
  6. java简历项目经验大全,不吃透都对不起自己
  7. Snipaste2.7.3下载安装与使用(超实用的截图利器)
  8. 教育技术资源大全(05-11-28)
  9. 开源ESB服务总线记录
  10. halcon模板匹配快速入门
  11. Day8:盈利源泉是否可持续(1)
  12. css如何把北京图片变小,css怎么把图片缩小
  13. Android第三方系统有哪些,第三方安卓定制系统LineageOS 14.1支持6款新设备:包括一加3T...
  14. 无人机上需要哪些程序? 以及如何进行无人机编程?
  15. 可爱猫+python3+Flask+aiohttp简单搭建微信机器人
  16. 北京汽车加速海外业务发展
  17. java tab标签_js-tab选项卡
  18. Arduino开发遥控小车(三)基于nRF24L01无线模块实现舵机转向和直流电机调速
  19. 5G UE鉴权流程详解 UE Authentication
  20. html em用法,中文Web设计HTML的em标记使用

热门文章

  1. C++智能指针shared_ptr使用实例
  2. Blender相关的一些链接(持续更新)
  3. 二叉树遍历的非递归算法
  4. 集成学习-蒸汽量预测案例
  5. 数据可视化工具在教学中的意义
  6. 大数据系统如何提供抗击疫情信息
  7. 部署大数据有哪些优势
  8. 大数据可视化有什么优点
  9. 物联卡与SIM卡相比优势在哪
  10. C++算法学习(力扣:134. 加油站)