/** 将所有数据导出成Excel,让客户知道哪些记录是异常的(异常的变红色) */
 public void exportExcel(ArrayList<ToolImport> prisonerImportList, String dir, String filename) {
  dir = dir + "/" + filename + ".xls";// 上传至服务器
  File file = new File(dir);
  if (file.exists()) {
   file.delete();
   file = new File(dir);
  }
  OutputStream output = null;
  try {
   output = new FileOutputStream(file);
  } catch (FileNotFoundException e) {
   e.printStackTrace();
  }

// 1.工作表
  HSSFWorkbook wb = new HSSFWorkbook();
  HSSFSheet sheet = wb.createSheet("Sheet-1");
  wb.setSheetName(0, "工具导入-1", HSSFCell.ENCODING_UTF_16);
  // HSSFCellStyle setBorder = wb.createCellStyle();

String[] colArray = { "序号", "分监区", "工具编号", "工具名称", "分监区编号",
    "固定/流动", "安装位置", "备注", "异常信息" };
  // 以下以写表头,表头为第一行
  HSSFCellStyle titleStyle = wb.createCellStyle();
  titleStyle.setFillForegroundColor(HSSFColor.AQUA.index);
  titleStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
  HSSFRow row0 = sheet.createRow((short) 0);
  HSSFCell cell0 = row0.createCell((short) 0);
  
  row0.setHeight((short)800); //设置行高
  
  Region region1 = new Region(0, (short) 0, 0, (short) 8);//合并单元格
  sheet.addMergedRegion(region1);
  //setBorder.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 居中 
  //setBorder.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 居中
  titleStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
  titleStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
  cell0.setEncoding((short) 1);
  cell0.setCellStyle(titleStyle);
  cell0.setCellValue("工具清点管理系统——工具导入");
  
  
  
  sheet.setColumnWidth((short)0, (short)2000); //  设置列宽
  sheet.setColumnWidth((short)1, (short)4500);
  sheet.setColumnWidth((short)2, (short)4500);
  sheet.setColumnWidth((short)3, (short)4500);
  sheet.setColumnWidth((short)4, (short)4500);
  sheet.setColumnWidth((short)5, (short)4500);
  sheet.setColumnWidth((short)6, (short)4500);
  sheet.setColumnWidth((short)7, (short)4500);
  sheet.setColumnWidth((short)8, (short)12000);

// setBorder.setAlignment(HSSFCellStyle.ALIGN_LEFT); // 居中 
  // setBorder.setAlignment(HSSFCellStyle.ALIGN_LEFT); // 居中
  
  //sheet.addMergedRegion(new Region(0,(short)1,1,(short)2));//
  HSSFRow row = sheet.createRow((short) 1);
  for (int i = 0; i < colArray.length; i++) {// 填写列标题
   HSSFCell cell = row.createCell((short) i);
   cell.setEncoding((short) 1);
   // cell.setCellStyle(titleStyle);
   cell.setCellValue(colArray[i]);
  }
  // 从Excel的第二行开始填充数据
  // 定义红色字体单元格
  HSSFFont font = wb.createFont();
  font.setColor(HSSFFont.COLOR_RED);
  HSSFCellStyle cellStyles = wb.createCellStyle();
  cellStyles.setFont(font);
  for (int i = 0; i < prisonerImportList.size(); i++) {
   // 定义数据从第二行开始
   ToolImport vo = prisonerImportList.get(i);
   row = sheet.createRow((short) i + 2);
   for (int j = 0; j < colArray.length; j++) {
    HSSFCell cell = row.createCell((short) j);
    cell.setEncoding((short) 1);
    if (StringUtils.isNotBlank(vo.getValidateStr())) { // 填充单元格为红色字体
     cell.setCellStyle(cellStyles);
    }
    switch (j) {
    case 0:
     cell.setCellValue(i + 1);
     break;
    case 1:
     cell.setCellValue(vo.getAreaname());
     break;
    case 2:
     cell.setCellValue(vo.getInnerNo());
     break;
    case 3:
     cell.setCellValue(vo.getToolName());
     break;
    case 4:
     cell.setCellValue(vo.getAreaNo());
     break;
    case 5:
     cell.setCellValue(vo.getToolType());
     break;
    case 6:
     cell.setCellValue(vo.getIsWhere());
     break;
    case 7:
     cell.setCellValue(vo.getRemark());
     break;
    case 8:
     cell.setCellValue(vo.getValidateStr());
     break;
    }
   }
  }
  try {
   wb.write(output);
  } catch (IOException e) {
   e.printStackTrace();
  }
  try {
   output.flush();
   output.close();
  } catch (IOException e) {
   e.printStackTrace();
  }
 }

转载于:https://www.cnblogs.com/shijiaoyun/p/3920098.html

Poi操作Excel相关推荐

  1. Java - Poi 操作 Excel

    Java - Poi 操作 Excel 关注 "弋凡"(YiFan)微信公众号吧 记录简单笔记 做你的最爱 注意 XSSFWorkbook 对象是操作 .xlsx 格式的表格 HS ...

  2. Apache POI操作Excel导出JAVABEAN对象方法

    2019独角兽企业重金招聘Python工程师标准>>> Apache POI操作Excel导出方法说明 Apache的POI组件是Java操作Microsoft Office办公套件 ...

  3. Apache POI操作Excel的坑

    本文记录一下用Apache POI操作Excel时可能遇到一些坑. excel版本错误 首先是excel版本问题,由于office excel 03版和07版的区别,在读取文件时如果版本不匹配会报以下 ...

  4. 【web开发】☆★之利用POI操作Excel表格系列教程【6】遍历工作簙行和列取值

    [web开发]☆★之利用POI操作Excel表格系列教程[6]遍历工作簙行和列取值 package com.xiaoye.demo; import java.io.FileInputStream; i ...

  5. java apache.poi_Java利用apache的POI操作Excel

    最近在写一些报表的活,顺便总结下...第一篇博文,希望多多指教. 项目中经常会设计到一些数据的报表问题,目前java中操作Excel的插件也有很多 ,我说下用apache的POI操作Excel的方法. ...

  6. POI操作Excel时Cannot get a text value from a numeric formula cell非法参数异常

    POI操作Excel时Cannot get a text value from a numeric formula cell非法参数异常 参考文章: (1)POI操作Excel时Cannot get ...

  7. execle java,Java使用POI操作Excel

    Java使用POI操作Excel 1. POI操作Excel 1.1. 依赖 org.apache.poi poi 4.1.0 org.apache.poi poi-ooxml 4.1.0 org.a ...

  8. Apache POI操作Excel文件

    Apache POI是用Java编写的免费开源的跨平台的Java API,Apache POI提供API给Java程序对Microsoft Office格式档案读和写的功能,其中使用最多的就是使用PO ...

  9. POI操作excel基本使用

    不用多说,下面的一个类中就是一些POI操作Excel (xls) 的常见操作.但是真正要生成一些如报表等复杂格式Excel的时候,通常的做法都是事先把格式一切的东西都手动制作好("数据模板& ...

  10. 自己封装的poi操作Excel工具类

    在上一篇文章<使用poi读写Excel>中分享了一下poi操作Excel的简单示例,这次要分享一下我封装的一个Excel操作的工具类. 该工具类主要完成的功能是:读取Excel.汇总Exc ...

最新文章

  1. 百度重磅发布云手机:低配置也可玩大型游戏 21
  2. 如何评价创作歌手的业务能力?试试让NLP帮你分析一下
  3. C# textBox1.Append/Text实现换行
  4. 基于容器服务的持续集成与云端交付(四)- 多种发布方式
  5. 计网复习第三章part one
  6. java word加粗_java word文档进行填充使用 ${xxx} 的形式
  7. Python之面向对象2
  8. 从Chrome源码看JS Array的实现
  9. larave 5 could not be opened: failed to open stream: Permission denied
  10. 2、服务器系统:Windows Server 2012 操作系统
  11. mysql 不等于 优化_Mysql优化
  12. FireFox新标签页打开搜索和书签
  13. ORACLE AutoVue 服务器/桌面版/WebService/SDK安装
  14. WebView 入坑
  15. 什么是数据科学?如何把数据变成产品
  16. 无依赖单机尝鲜 Nebula Exchange 的 SST 导入
  17. 【C语言】练习:给出三角形三边长,求三角形面积
  18. 【ELAMN预测】基于Elman神经网络预测股价附matlab代码
  19. 如果需要跳槽,自己该怎样去写简历?
  20. 使命召唤10:幽灵中文版免暗中 未加密破解版下载

热门文章

  1. “Runtime Error”不产生dump文件的解决办法
  2. android 闪屏页处理_Android应用闪屏页延迟跳转的三种写法
  3. centos8 配置 dns_如何在Ubuntu 18.04上设置DNS名称服务器 | linux资讯
  4. 带你了解PCIE通信原理
  5. (14)System Verilog范围随机函数
  6. (29)FPGA原语设计(差分时钟转单端时钟)
  7. 学计算机修图,宅家修图很简单 手机电脑都可以修出大片的感觉
  8. ideahtml标签不提示_「系统自带标签」如何帮门店区分价值顾客?| 早8点141期
  9. Linux内核分析 - 网络[八]:IP协议
  10. SVD 与 PCA 的直观解释(4): PCA 主成分分析