使用 poi 工具类填充 excel 表格

本贴最后更新于 1897 天前,其中的信息可能已经时过境迁
利用 poi 工具类将 list 中的内容填充到 excel 表格中
/** * @param outpath 输出到哪个文件(即路径. 文件需存在!) * @param value 其他辅助字符串,本方法中用来填充表头 * @param list 需要填充到excel表中的主要内容 * @throws Exception */ public void exportVehicleParameterComparisonTable(String outpath,String value, List<CarParamDetailEO> list) throws Exception { String carmodel1 = ""; String carmodel2 = ""; String[] values = value.split(";"); carmodel1 = values[0].split("_")[1]; carmodel2 = values[1].split("_")[1]; String model_path= "D:\hcs\model.xlsx"; // 模板路径 //#2 拷贝新的文件 File in=new File(model_path);//读取文件模板 File out =new File(outpath);//输出文件可改名 Common.copyFile(in, out);//复制文件 FileInputStream readFile; try { readFile = new FileInputStream(out); XSSFWorkbook wb = new XSSFWorkbook(readFile);//创建工作薄文件 //在文档中添加表单 XSSFSheet sheet1 = wb.getSheet("Sheet1"); XSSFFont font = wb.createFont(); font.setColor(HSSFColor.RED.index); XSSFCellStyle styleRedFont = wb.createCellStyle();//总体单元格样式,需要其他样式可在下面代码再加 styleRedFont.setAlignment(XSSFCellStyle.ALIGN_LEFT); // 创建一个左对齐格式 styleRedFont.setVerticalAlignment(XSSFCellStyle.VERTICAL_CENTER); styleRedFont.setBorderBottom(XSSFCellStyle.BORDER_THIN); //下边框 styleRedFont.setBorderLeft(XSSFCellStyle.BORDER_THIN);//左边框 styleRedFont.setBorderTop(XSSFCellStyle.BORDER_THIN);//上边框 styleRedFont.setBorderRight(XSSFCellStyle.BORDER_THIN);//右边框 styleRedFont.setWrapText(true);//自动换行 styleRedFont.setFont(font); XSSFCellStyle style = wb.createCellStyle();//总体单元格样式,需要其他样式可在下面代码再加 style.setAlignment(XSSFCellStyle.ALIGN_LEFT); // 创建一个左对齐格式 style.setVerticalAlignment(XSSFCellStyle.VERTICAL_CENTER); style.setBorderBottom(XSSFCellStyle.BORDER_THIN); //下边框 style.setBorderLeft(XSSFCellStyle.BORDER_THIN);//左边框 style.setBorderTop(XSSFCellStyle.BORDER_THIN);//上边框 style.setBorderRight(XSSFCellStyle.BORDER_THIN);//右边框 style.setWrapText(true);//自动换行 /*创建行*/ XSSFRow row; /*创建列,即单元格cell*/ XSSFCell cell; /*创建单元格内字体样式*/ XSSFRichTextString carmodel1Style = new XSSFRichTextString(carmodel1+"_结构参数"); XSSFRichTextString carmodel2Style = new XSSFRichTextString(carmodel2+"_结构参数"); /*设置一个单元格内部分字体*/ carmodel1Style.applyFont(0, (carmodel1+"_结构参数").lastIndexOf("_"), font); carmodel2Style.applyFont(0, (carmodel2+"_结构参数").lastIndexOf("_"), font); row = sheet1.createRow(0); cell = row.createCell(0); cell.setCellValue("序号"); cell.setCellStyle(style); cell = row.createCell(1); cell.setCellValue("参数项名称"); cell.setCellStyle(style); cell = row.createCell(2); cell.setCellValue(carmodel1Style); cell.setCellStyle(style); cell = row.createCell(3); cell.setCellValue(carmodel1Style); cell.setCellStyle(style); /*用来确定填充到第多少行*/ int m = 1; /*读取list中的内容逐行填充到excel中*/ for (CarParamDetailEO eo : list) { String orderNumber = eo.getOrderNumber() == null ? "" : eo.getOrderNumber().trim(); String parameterName = eo.getParameterName() == null ? "" : eo.getParameterName().trim(); String paramcontent = eo.getParamcontent() == null ? "" : eo.getParamcontent().trim(); String paramcontent0 = eo.getParamcontent0() == null ? "" : eo.getParamcontent0().trim(); row = sheet1.createRow(m++); cell = row.createCell(0); cell.setCellValue(orderNumber); cell.setCellStyle(style); cell = row.createCell(1); cell.setCellValue(parameterName); cell.setCellStyle(style); /*此处判断两个单元格数据是否相同, 不同则设为红色样式*/ if (paramcontent.equals(paramcontent0)){ cell = row.createCell(2); cell.setCellValue(paramcontent); cell.setCellStyle(style); cell = row.createCell(3); cell.setCellValue(paramcontent0); cell.setCellStyle(style); } else { cell = row.createCell(2); cell.setCellValue(paramcontent); cell.setCellStyle(styleRedFont); cell = row.createCell(3); cell.setCellValue(paramcontent0); cell.setCellStyle(styleRedFont); } }//for /*创建输出流*/ FileOutputStream ouputStream=new FileOutputStream(out); try { /*将填充的数据写入文件*/ wb.write(ouputStream); } catch (Exception e) { e.printStackTrace(); }finally{ ouputStream.close(); ouputStream.flush(); } } catch (Exception e) { logger.error(e); e.printStackTrace(); } }
  • POI
    23 引用 • 21 回帖
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3203 引用 • 8217 回帖
  • Excel
    31 引用 • 28 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • SQLite

    SQLite 是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是全世界使用最为广泛的数据库引擎。

    4 引用 • 7 回帖
  • uTools

    uTools 是一个极简、插件化、跨平台的现代桌面软件。通过自由选配丰富的插件,打造你得心应手的工具集合。

    7 引用 • 28 回帖 • 1 关注
  • BAE

    百度应用引擎(Baidu App Engine)提供了 PHP、Java、Python 的执行环境,以及云存储、消息服务、云数据库等全面的云服务。它可以让开发者实现自动地部署和管理应用,并且提供动态扩容和负载均衡的运行环境,让开发者不用考虑高成本的运维工作,只需专注于业务逻辑,大大降低了开发者学习和迁移的成本。

    19 引用 • 75 回帖 • 686 关注
  • 链滴

    链滴是一个记录生活的地方。

    记录生活,连接点滴

    187 引用 • 3914 回帖
  • flomo

    flomo 是新一代 「卡片笔记」 ,专注在碎片化时代,促进你的记录,帮你积累更多知识资产。

    6 引用 • 143 回帖 • 1 关注
  • 工具

    子曰:“工欲善其事,必先利其器。”

    302 引用 • 772 回帖
  • 阿里云

    阿里云是阿里巴巴集团旗下公司,是全球领先的云计算及人工智能科技公司。提供云服务器、云数据库、云安全等云计算服务,以及大数据、人工智能服务、精准定制基于场景的行业解决方案。

    85 引用 • 324 回帖 • 1 关注
  • danl
    187 关注
  • SQLServer

    SQL Server 是由 [微软] 开发和推广的关系数据库管理系统(DBMS),它最初是由 微软、Sybase 和 Ashton-Tate 三家公司共同开发的,并于 1988 年推出了第一个 OS/2 版本。

    21 引用 • 31 回帖
  • 知乎

    知乎是网络问答社区,连接各行各业的用户。用户分享着彼此的知识、经验和见解,为中文互联网源源不断地提供多种多样的信息。

    10 引用 • 66 回帖
  • Eclipse

    Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。

    76 引用 • 258 回帖 • 632 关注
  • ZeroNet

    ZeroNet 是一个基于比特币加密技术和 BT 网络技术的去中心化的、开放开源的网络和交流系统。

    1 引用 • 21 回帖 • 651 关注
  • 脑图

    脑图又叫思维导图,是表达发散性思维的有效图形思维工具 ,它简单却又很有效,是一种实用性的思维工具。

    32 引用 • 100 回帖
  • 开源

    Open Source, Open Mind, Open Sight, Open Future!

    415 引用 • 3601 回帖
  • 钉钉

    钉钉,专为中国企业打造的免费沟通协同多端平台, 阿里巴巴出品。

    15 引用 • 67 回帖 • 259 关注
  • JSON

    JSON (JavaScript Object Notation)是一种轻量级的数据交换格式。易于人类阅读和编写。同时也易于机器解析和生成。

    53 引用 • 190 回帖 • 3 关注
  • 音乐

    你听到信仰的声音了么?

    62 引用 • 512 回帖
  • 正则表达式

    正则表达式(Regular Expression)使用单个字符串来描述、匹配一系列遵循某个句法规则的字符串。

    31 引用 • 94 回帖 • 2 关注
  • 前端

    前端技术一般分为前端设计和前端开发,前端设计可以理解为网站的视觉设计,前端开发则是网站的前台代码实现,包括 HTML、CSS 以及 JavaScript 等。

    247 引用 • 1340 回帖
  • TGIF

    Thank God It's Friday! 感谢老天,总算到星期五啦!

    292 引用 • 4495 回帖 • 663 关注
  • 友情链接

    确认过眼神后的灵魂连接,站在链在!

    24 引用 • 373 回帖 • 2 关注
  • JVM

    JVM(Java Virtual Machine)Java 虚拟机是一个微型操作系统,有自己的硬件构架体系,还有相应的指令系统。能够识别 Java 独特的 .class 文件(字节码),能够将这些文件中的信息读取出来,使得 Java 程序只需要生成 Java 虚拟机上的字节码后就能在不同操作系统平台上进行运行。

    180 引用 • 120 回帖 • 2 关注
  • 996
    13 引用 • 200 回帖 • 1 关注
  • JRebel

    JRebel 是一款 Java 虚拟机插件,它使得 Java 程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响。

    26 引用 • 78 回帖 • 688 关注
  • DevOps

    DevOps(Development 和 Operations 的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

    59 引用 • 25 回帖
  • BND

    BND(Baidu Netdisk Downloader)是一款图形界面的百度网盘不限速下载器,支持 Windows、Linux 和 Mac,详细介绍请看这里

    107 引用 • 1281 回帖 • 41 关注
  • 架构

    我们平时所说的“架构”主要是指软件架构,这是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计。另外还有“业务架构”、“网络架构”、“硬件架构”等细分领域。

    142 引用 • 442 回帖