@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技术)...相关推荐

  1. excel表格中打开可以显示整个表格但是打印却只能打印一个单元格

    excel表格中打开可以显示整个表格但是打印却只能打印一个单元格 如下图显示 解决办法 2007 版菜单栏上 ----->页面布局----->打印区域----->取消打印.即可正常. ...

  2. 报表中怎么把相同值的单元格合并成一个大格

    同值合并单元格的情况一般分两种: 1.一种是比较简单的情况:对分类或者分类扩展字段进行同值合并处理(如下图所示的效果图:对供应商数据进行同值合并) 这种情况大多数报表工具都能直接支持,使用分组功能即可 ...

  3. java int格式转换文本_java 文件导出Excel 文本形式转数字格式解决,字段是int导出需求是数字解决方案...

    问题:java字段是int类型等,然后导出时是文本,需要操作人员转换为数字格式. 应操作人员要求,导出的时候就是数字格式可以不用转换,方便操作等 java 后台处理过程: 这里我只处理表格的0,2,7 ...

  4. Excel导出且合并相同值的单元格

    1.合并单元格工具类 /*** 导出excel工具类*/ public class ExportExcelUtil {public ExportExcelUtil() {super();}/*** @ ...

  5. java实现excel文件上传_java相关:SpringMVC下实现Excel文件上传下载

    java相关:SpringMVC下实现Excel文件上传下载 发布于 2020-6-21| 复制链接 摘记: 在实际应用中,经常会遇到上传Excel或者下载Excel的情况,比如导入数据.下载统计数据 ...

  6. java删除word中批注_Java 添加、读取和删除 Excel 批注的操作代码

    批注是一种富文本注释,常用于为指定的Excel单元格添加提示或附加信息. Free Spire.XLS for Java为开发人员免费提供了在Java应用程序中对Excel文件添加和操作批注的功能. ...

  7. java excel 单元格类型,POI Excel 单元格内容类型判断并取值

    个人用到的 String birthdayVal = null; switch (cell_2.getCellTypeEnum()) { case STRING: birthdayVal = cell ...

  8. java设置Excel单元格格式 POI

    POI中可能会用到一些需要设置EXCEL单元格格式的操作小结:先获取工作薄对象:HSSFWorkbook wb = new HSSFWorkbook();HSSFSheet sheet = wb.cr ...

  9. php 导出csv设置列宽度,php数据库导出excel表格数据-php从数据库导出csv格式的Excel表格是,字段本身就......

    PHP如何将查询出来的数据导出成excel表格(最好做... $objPHPExcel->getActiveSheet()->getDefaultColumnDimension(A)-&g ...

最新文章

  1. 全球及中国潜水压力传感器行业运行态势及发展战略研究报告2022-2027年
  2. 索引使用原则-列的离散(sàn)度
  3. MongoDb分片集群认证
  4. MFC中属性表单和向导对话框的使用
  5. 互联网金融爬虫怎么写-第二课 雪球网股票爬虫(正则表达式入门)
  6. 安装python3-dev_linux安装python3
  7. 十大热门编程语言的介绍
  8. Himall商城图片帮助类ImageHelper 生成验证码
  9. 全球免费数字图书馆TOP30
  10. windows10安装更新很慢ndows,win10系统更新后运行速度变慢的解决方法 - 系统家园...
  11. 宝塔面板建立站点无法打开网页解决办法
  12. linux 复制文件提示略过目录xxx
  13. 做开发你遇到最无理的需求是什么?
  14. C++约瑟夫环改良版
  15. 保险怎么买?有哪些销售渠道?各自的优缺点是什么?
  16. 【谷粒商城】ElasticSearch、上架与检索
  17. 面试知识点-网络——HTTP与TLS
  18. H265封装成RTP流(一)
  19. idea设置代码提示
  20. Ignite 数据网格快速学习(一)

热门文章

  1. python 使用tsfresh进行时间序列特征提取
  2. AC自动机(python)
  3. revit对齐命令选不中_如何利用无人机+Photoscan+Revit完成土方计算
  4. php.ini 没有pdo,php.ini 没有pdo怎么办
  5. 利用oc门或od门实现线与_福师《数字逻辑》在线作业二答案
  6. Spring入门-框架搭建
  7. Nginx下Uwsgi模块常用参数说明
  8. tp3.2 php sdk上传七牛云
  9. Asp.Net Core发布绑定域名和端口
  10. java中初始化块、静态初始化块和构造方法