主要使用poi jar来操作excel文件。代码中用到的数据库表信息见ORACLE之表。使用public ArrayList<Person> getPersonAllRecords()获得所有的记录。

 public class PersonXLS {

     public static void main(String[] args) throws IOException {

         Workbook newExcel=new HSSFWorkbook();//创建一个excel
         DBUtil dbUtil=new DBUtil();//数据库工具类
         Sheet newSheet0=newExcel.createSheet("Person Info");//创建一个sheet
         String[] title={"MAP_ID","PERSON_CODE","PERSON_NAME","SEX","INSERT_TIME","UPDATE_TIME","POSITION","SALARY","DEPT"};//表头
         SimpleDateFormat sdf;
         Row newRow0=newSheet0.createRow(0);//创建表头
           int i=0;
           for(String s:title){//写入表头
               Cell cell=newRow0.createCell(i++);
               cell.setCellValue(s);
           }
           long sql_begin = System.currentTimeMillis();
           dbUtil.getConn();//数据库连接
           ArrayList<Person> persons=dbUtil.getPersonAllRecords();//获取记录
           sdf=new SimpleDateFormat("MM/dd/yyyy");
           for(i=0;i<persons.size();i++){//写入记录
               Row newRow=newSheet0.createRow(i+1);
               newRow.createCell(0).setCellValue(persons.get(i).getMap_id());
               newRow.createCell(1).setCellValue(persons.get(i).getPerson_code());
               newRow.createCell(2).setCellValue(persons.get(i).getPerson_name());
               newRow.createCell(3).setCellValue(persons.get(i).getSex());
               newRow.createCell(4).setCellValue(sdf.format(persons.get(i).getInsert_time()));
               newRow.createCell(5).setCellValue(sdf.format(persons.get(i).getUpdate_time()));
               newRow.createCell(6).setCellValue(persons.get(i).getPosition());
               newRow.createCell(7).setCellValue(persons.get(i).getSalary());
               newRow.createCell(8).setCellValue(persons.get(i).getDept());
           }
           sdf=new SimpleDateFormat("yyyyMMddHHmmss");
           FileOutputStream fos=new FileOutputStream("PersonInfo"+sdf.format(new Date())+System.currentTimeMillis()+".xls");//创建
           newExcel.write(fos);//向输入流写入数据
           System.out.println("sql cost :"+(System.currentTimeMillis()-sql_begin)+"ms.");//数据操作花费时间
     }
 }

output:

java使用POI jar包读写xls文件的更多相关文章

  1. Java使用jxl.jar包写Excel文件的最适合列宽问题基本实现

    以前用jxl.jar包,读写过Excel文件.也没有注意最适合列宽的问题,但是jxl.jar没有提供最适合列宽的功能,上次用到写了一下,可以基本实现最适合列宽. 注意,这个只是基本可以实现,基本针对中 ...

  2. Java使用comms-net jar包完成ftp文件上传进度的检测功能

    本文章只讲述大致的思路与本次功能对应的一些开发环境,具体实现请结合自己的开发情况,仅供参考,如果有不对的地方,欢迎大家指出! 准备环境:JDK1.7 OR 1.8.eclipse.ftp服务器(可自行 ...

  3. java使用poi读取doc和docx文件(maven自动导入依赖包)

    java使用poi读取doc和docx文件(maven自动导入依赖包) 于是在网上搜寻了一阵之后才发现原来doc文档和excel一样不能用普通的io流的方法来读取,而是也需要用poi,于是进行了一番尝 ...

  4. java jar包解析:打包文件,引入文件

    java jar包解析:打包文件,引入文件 cmd下: jar命令:package包打包 javac命令:普通类文件打包 Hello.java: package org.lxh.demo; publi ...

  5. Java 操作jar包工具类以及如何快速修改Jar包里的文件内容

    需求背景:写了一个实时读取日志文件以及监控的小程序,打包成了Jar包可执行文件,通过我们的web主系统上传到各个服务器,然后调用ssh命令执行.每次上传前都要通过解压缩软件修改或者替换里面的配置文件, ...

  6. java读取jar包中的文件

    随手写了一个java小工具,maven打包成功后,发现工具总是读不到打在jar包中的文件信息,要读取的文件位于 /src/main/resources 目录下,打包成功后,文件就在jar包中根目录下, ...

  7. Java如何快速修改Jar包里的文件内容

    需求背景:写了一个实时读取日志文件以及监控的小程序,打包成了Jar包可执行文件,通过我们的web主系统上传到各个服务器,然后调用ssh命令执行.每次上传前都要通过解压缩软件修改或者替换里面的配置文件, ...

  8. Java开发桌面程序学习(七)——ImageView设置图片以及jar包读取fxml文件

    ImageView设置图片 JavaFx的ImageView,设置图片不能直接通过属性设置,只能通过代码来设置 ImageView设置图片 首先,我们让fxml对应的那个controller的java ...

  9. Eclipse插件开发中对于Jar包和类文件引用的处理(彻底解决插件开发中的NoClassDefFoundError问题)(转)

    目的:Eclipse插件开发中,经常要引用第三方包或者是引用其他插件中的类,由于插件开发环境引用类路径的设置和运行平台引用类路径的设置不同,经常导致开发过程OK,一旦运行则出现NoClassDefFo ...

随机推荐

  1. 为什么要把js代码写到<!--//-->中

    是为了兼容,不支持js的浏览器会把其中的内容当做html注释.

  2. ExtJs内的datefield控件选择日期过后的事件监听select

    [摘要]: 选择时间过后我们为什么需要监听事件?一般有这样一种情况,那就是用于比较两个时间大小或者需要判断在哪个时间点上需要做什么样的操作.基于这样的种种情况,我们很有必要琢磨一下datefield控 ...

  3. Extjs随笔

    { columnWidth : .1, layout : 'form', items : [{ fieldLabel : "至", labelSeparator:'', label ...

  4. Semaphore 和 Mutex

    mutex和semaphore有什么区别呢? mutex是用作互斥的,而semaphore是用作同步的. 也就是说,mutex的初始化一定是为1,而semaphore可以是任意的数, 所以如果使用mu ...

  5. 12个非常不错的免费HTML后台管理模板

    下面介绍的这些免费后端管理HTML模板,都非常不错.建议您收藏. 1.  Charisma Admin Template (示例) Charisma是一个响应式管理模板,基于Twitter Boots ...

  6. Codeforces Round #336 (Div. 2)A. Saitama Destroys Hotel 水题

    A. Saitama Destroys Hotel 题目连接: http://www.codeforces.com/contest/608/problem/A Description Saitama ...

  7. 【原创】AltiumDesigner 6 的自定义菜单

    AltiumDesigner 6 的自定义菜单,数据保存在DXP.RCS文件中通过测试,添加一个自定义菜单名为HHH,然后用Editplus在C:\Users\pcittsy\AppData\Roam ...

  8. android获取/更改gps和WIFI状态

    一.WIFI状态的获取和更改 适用于 SDK1.0 , SDK1.5 1.获取WIFI状态 方法1:通过WifiManager进行操作 1WifiManager wifiManager = (Wifi ...

  9. 【JavaScript】关于JS中的constructor与prototype

    最初对js中 object.constructor 的认识: 在学习JS的面向对象过程中,一直对constructor与prototype感到很迷惑,看了一些博客与书籍,觉得自己弄明白了,现在记录如下 ...

  10. j2ee项目后置类代码实现跳出iframe页面跳转

    response.getWriter().write("<script>top.location.href='../admin/login';</script>&qu ...