【类库教程】Java 实现导出 excel 表 POI

本贴最后更新于 1923 天前,其中的信息可能已经时异事殊

Java 实现导出 excel 表 POI

1.首先下载 poi-3.6-20091214.jar,下载地址如下:

http://download.csdn.net/download/qq_31635851/10026048

官网地址:http://poi.apache.org/

2.Student.java

  import java.util.Date;  
    
  public class Student  
  {  
      private int id;  
      private String name;  
      private int age;  
      private Date birth;  
    
      public Student()  
      {  
      }  
    
      public Student(int id, String name, int age, Date birth)  
      {  
          this.id = id;  
          this.name = name;  
          this.age = age;  
          this.birth = birth;  
      }  
    
      public int getId()  
      {  
          return id;  
      }  
    
      public void setId(int id)  
      {  
          this.id = id;  
      }  
    
      public String getName()  
      {  
          return name;  
      }  
    
      public void setName(String name)  
      {  
          this.name = name;  
      }  
    
      public int getAge()  
      {  
          return age;  
      }  
    
      public void setAge(int age)  
      {  
          this.age = age;  
      }  
    
      public Date getBirth()  
      {  
          return birth;  
      }  
    
      public void setBirth(Date birth)  
      {  
          this.birth = birth;  
      }  
    
  }  

3.CreateSimpleExcelToDisk.java

  import java.io.FileOutputStream;  
  import java.text.SimpleDateFormat;  
  import java.util.ArrayList;  
  import java.util.List;  
    
  import org.apache.poi.hssf.usermodel.HSSFCell;  
  import org.apache.poi.hssf.usermodel.HSSFCellStyle;  
  import org.apache.poi.hssf.usermodel.HSSFRow;  
  import org.apache.poi.hssf.usermodel.HSSFSheet;  
  import org.apache.poi.hssf.usermodel.HSSFWorkbook;  
    
  public class CreateSimpleExcelToDisk  
  {  
      /** 
       * @功能:手工构建一个简单格式的Excel 
       */  
      private static List getStudent() throws Exception  
      {  
          List list = new ArrayList();  
          SimpleDateFormat df = new SimpleDateFormat("yyyy-mm-dd");  
    
          Student user1 = new Student(1, "张三", 16, df.parse("1997-03-12"));  
          Student user2 = new Student(2, "李四", 17, df.parse("1996-08-12"));  
          Student user3 = new Student(3, "王五", 26, df.parse("1985-11-12"));  
          list.add(user1);  
          list.add(user2);  
          list.add(user3);  
    
          return list;  
      }  
    
      public static void main(String[] args) throws Exception  
      {  
          // 第一步,创建一个webbook,对应一个Excel文件  
          HSSFWorkbook wb = new HSSFWorkbook();  
          // 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet  
          HSSFSheet sheet = wb.createSheet("学生表一");  
          // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short  
          HSSFRow row = sheet.createRow((int) 0);  
          // 第四步,创建单元格,并设置值表头 设置表头居中  
          HSSFCellStyle style = wb.createCellStyle();  
          style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式  
    
          HSSFCell cell = row.createCell((short) 0);  
          cell.setCellValue("学号");  
          cell.setCellStyle(style);  
          cell = row.createCell((short) 1);  
          cell.setCellValue("姓名");  
          cell.setCellStyle(style);  
          cell = row.createCell((short) 2);  
          cell.setCellValue("年龄");  
          cell.setCellStyle(style);  
          cell = row.createCell((short) 3);  
          cell.setCellValue("生日");  
          cell.setCellStyle(style);  
    
          // 第五步,写入实体数据 实际应用中这些数据从数据库得到,  
          List list = CreateSimpleExcelToDisk.getStudent();  
    
          for (int i = 0; i < list.size(); i++)  
          {  
              row = sheet.createRow((int) i + 1);  
              Student stu = (Student) list.get(i);  
              // 第四步,创建单元格,并设置值  
              row.createCell((short) 0).setCellValue((double) stu.getId());  
              row.createCell((short) 1).setCellValue(stu.getName());  
              row.createCell((short) 2).setCellValue((double) stu.getAge());  
              cell = row.createCell((short) 3);  
              cell.setCellValue(new SimpleDateFormat("yyyy-mm-dd").format(stu  
                      .getBirth()));  
          }  
          // 第六步,将文件存到指定位置  
          try  
          {  
              FileOutputStream fout = new FileOutputStream("E:/students.xls");  
              wb.write(fout);  
              fout.close();  
          }  
          catch (Exception e)  
          {  
              e.printStackTrace();  
          }  
      }  
  }  
  • Java

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

    3168 引用 • 8207 回帖

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
moonce
宠辱不惊,看庭前花开花落,去留无意,望天上云卷云舒。

推荐标签 标签

  • 服务

    提供一个服务绝不仅仅是简单的把硬件和软件累加在一起,它包括了服务的可靠性、服务的标准化、以及对服务的监控、维护、技术支持等。

    41 引用 • 24 回帖 • 5 关注
  • 开源

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

    396 引用 • 3416 回帖
  • Spark

    Spark 是 UC Berkeley AMP lab 所开源的类 Hadoop MapReduce 的通用并行框架。Spark 拥有 Hadoop MapReduce 所具有的优点;但不同于 MapReduce 的是 Job 中间输出结果可以保存在内存中,从而不再需要读写 HDFS,因此 Spark 能更好地适用于数据挖掘与机器学习等需要迭代的 MapReduce 的算法。

    74 引用 • 46 回帖 • 548 关注
  • SEO

    发布对别人有帮助的原创内容是最好的 SEO 方式。

    35 引用 • 200 回帖 • 24 关注
  • 倾城之链
    23 引用 • 66 回帖 • 100 关注
  • 钉钉

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

    15 引用 • 67 回帖 • 370 关注
  • Sphinx

    Sphinx 是一个基于 SQL 的全文检索引擎,可以结合 MySQL、PostgreSQL 做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。

    1 引用 • 180 关注
  • TextBundle

    TextBundle 文件格式旨在应用程序之间交换 Markdown 或 Fountain 之类的纯文本文件时,提供更无缝的用户体验。

    1 引用 • 2 回帖 • 47 关注
  • ZooKeeper

    ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现,是 Hadoop 和 HBase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

    59 引用 • 29 回帖 • 18 关注
  • 数据库

    据说 99% 的性能瓶颈都在数据库。

    330 引用 • 614 回帖
  • 房星科技

    房星网,我们不和没有钱的程序员谈理想,我们要让程序员又有理想又有钱。我们有雄厚的房地产行业线下资源,遍布昆明全城的 100 家门店、四千地产经纪人是我们坚实的后盾。

    6 引用 • 141 回帖 • 559 关注
  • SpaceVim

    SpaceVim 是一个社区驱动的模块化 vim/neovim 配置集合,以模块的方式组织管理插件以
    及相关配置,为不同的语言开发量身定制了相关的开发模块,该模块提供代码自动补全,
    语法检查、格式化、调试、REPL 等特性。用户仅需载入相关语言的模块即可得到一个开箱
    即用的 Vim-IDE。

    3 引用 • 31 回帖 • 71 关注
  • RIP

    愿逝者安息!

    8 引用 • 92 回帖 • 291 关注
  • 资讯

    资讯是用户因为及时地获得它并利用它而能够在相对短的时间内给自己带来价值的信息,资讯有时效性和地域性。

    53 引用 • 85 回帖
  • Solidity

    Solidity 是一种智能合约高级语言,运行在 [以太坊] 虚拟机(EVM)之上。它的语法接近于 JavaScript,是一种面向对象的语言。

    3 引用 • 18 回帖 • 350 关注
  • 周末

    星期六到星期天晚,实行五天工作制后,指每周的最后两天。再过几年可能就是三天了。

    14 引用 • 297 回帖 • 1 关注
  • 反馈

    Communication channel for makers and users.

    123 引用 • 906 回帖 • 192 关注
  • 爬虫

    网络爬虫(Spider、Crawler),是一种按照一定的规则,自动地抓取万维网信息的程序。

    106 引用 • 275 回帖
  • 尊园地产

    昆明尊园房地产经纪有限公司,即:Kunming Zunyuan Property Agency Company Limited(简称“尊园地产”)于 2007 年 6 月开始筹备,2007 年 8 月 18 日正式成立,注册资本 200 万元,公司性质为股份经纪有限公司,主营业务为:代租、代售、代办产权过户、办理银行按揭、担保、抵押、评估等。

    1 引用 • 22 回帖 • 685 关注
  • Ngui

    Ngui 是一个 GUI 的排版显示引擎和跨平台的 GUI 应用程序开发框架,基于
    Node.js / OpenGL。目标是在此基础上开发 GUI 应用程序可拥有开发 WEB 应用般简单与速度同时兼顾 Native 应用程序的性能与体验。

    7 引用 • 9 回帖 • 345 关注
  • gRpc
    10 引用 • 8 回帖 • 54 关注
  • Kotlin

    Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,由 JetBrains 设计开发并开源。Kotlin 可以编译成 Java 字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行。在 Google I/O 2017 中,Google 宣布 Kotlin 成为 Android 官方开发语言。

    19 引用 • 33 回帖 • 27 关注
  • 笔记

    好记性不如烂笔头。

    303 引用 • 777 回帖
  • Typecho

    Typecho 是一款博客程序,它在 GPLv2 许可证下发行,基于 PHP 构建,可以运行在各种平台上,支持多种数据库(MySQL、PostgreSQL、SQLite)。

    12 引用 • 60 回帖 • 467 关注
  • 微软

    微软是一家美国跨国科技公司,也是世界 PC 软件开发的先导,由比尔·盖茨与保罗·艾伦创办于 1975 年,公司总部设立在华盛顿州的雷德蒙德(Redmond,邻近西雅图)。以研发、制造、授权和提供广泛的电脑软件服务业务为主。

    8 引用 • 44 回帖
  • 禅道

    禅道是一款国产的开源项目管理软件,她的核心管理思想基于敏捷方法 scrum,内置了产品管理和项目管理,同时又根据国内研发现状补充了测试管理、计划管理、发布管理、文档管理、事务管理等功能,在一个软件中就可以将软件研发中的需求、任务、bug、用例、计划、发布等要素有序的跟踪管理起来,完整地覆盖了项目管理的核心流程。

    5 引用 • 15 回帖 • 222 关注
  • 外包

    有空闲时间是接外包好呢还是学习好呢?

    26 引用 • 232 回帖 • 6 关注