我是靠谱客的博主 友好小笼包,最近开发中收集的这篇文章主要介绍java excel相同的合并_java servlet导出EXCEL并合并EXCEL相同值的单元格(Apache POI技术)...,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

@ResponseBody

@RequestMapping(params = "method=loadOutExcel")

public void loadOutExcel(HttpServletRequest request) throws IOException{

//人员登录id

Farmer farmer = (Farmer) request.getSession().getAttribute("farmer");

int id = farmer.getId();

//根据登录id,从数据库读取全部值

List orderDetailsList = orderDetailService.getHistoryOrderDetailListExcel(id);

XSSFWorkbook workbook = new XSSFWorkbook();

XSSFCellStyle cellStyle = workbook.createCellStyle();

//创建EXCEL表名

XSSFSheet spreadsheet = workbook.createSheet("历史订单");

XSSFRow row=spreadsheet.createRow(0);

XSSFCell cell;

//在EXCEL的第一行建立各列的标题

cell=row.createCell(0);

cell.setCellValue("配送时间");

cell=row.createCell(1);

cell.setCellValue("订单量");

cell=row.createCell(2);

cell.setCellValue("农场名称");

cell=row.createCell(3);

cell.setCellValue("商品名称");

cell=row.createCell(4);

cell.setCellValue("商品数量");

cell=row.createCell(5);

cell.setCellValue("单位");

int countIndex = 0;

String deli_day = ""; //定义一个临时存储值

int startRow = 1;

int sum=0;

int countIndex_s = 0;

int startRow_s = 1;

int i=1;

for(OrderWaitPojo o:orderDetailsList){

row=spreadsheet.createRow(i);

cell=row.createCell(0);

cell.setCellValue(o.getDelivery_day());

if("".equals(deli_day)){//当第一次循环的时候将第一个实际值赋值给临时变量

deli_day=o.getDelivery_day();

}else{

if(o.getDelivery_day().equals(deli_day)){ //第二次循环取得的值与第一次循环取得值                                                                进行对比,如果相等,计数器countIndex+1

countIndex ++;

}else{

//如果比较不相等,则合并单元格,现在合并的是从第startRow行开始,到startRow                                +countIndex行结束,后边两个0是从第0列开始,到第0列结束

spreadsheet.addMergedRegion(new CellRangeAddress(startRow,startRow+countIndex, 0, 0));

startRow = startRow+countIndex+1;

countIndex = 0;

deli_day=o.getDelivery_day();

}

}

cell=row.createCell(1);

cell.setCellValue(o.getSum());

if(sum==0){

sum = o.getSum();

}else{

if(o.getSum()==sum){

countIndex_s ++;

}else{

spreadsheet.addMergedRegion(new CellRangeAddress(startRow_s,startRow_s+countIndex_s, 1, 1));

startRow_s = startRow_s+countIndex_s+1;

countIndex_s = 0;

sum=o.getSum();

}

}

cell=row.createCell(2);

cell.setCellValue(o.getFarm_name());

cell=row.createCell(3);

cell.setCellValue(o.getProduct_name());

cell=row.createCell(4);

cell.setCellValue(o.getAmount());

cell=row.createCell(5);

cell.setCellValue(o.getUnit());

i++;

}

FileOutputStream out = new FileOutputStream(new File("D:/历史订单.xlsx"));

workbook.write(out);

out.close();

System.out.println(

"exceldatabase.xlsx written successfully");

}

最后

以上就是友好小笼包为你收集整理的java excel相同的合并_java servlet导出EXCEL并合并EXCEL相同值的单元格(Apache POI技术)...的全部内容,希望文章能够帮你解决java excel相同的合并_java servlet导出EXCEL并合并EXCEL相同值的单元格(Apache POI技术)...所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部