java 生成Excel开门篇

转自大牛:https://www.cnblogs.com/hotspring/p/9140930.html

本随笔的Excel所用的poi jar包(3.17版本)链接: https://pan.baidu.com/s/1gaa3dJueja8IraUDYCSLIQ  提取密码: 9xr7

简单实现:两个类:UserPojo 和ExcelUtil

废话不多说,直接上代码:

UserPojo.java 类:

package pojo;

public class UserPojo {
    private int uid;
    private String uname;
    private String upass;
    private String udate;

    public UserPojo(int uid, String uname, String upass, String udate) {
        super();
        this.uid = uid;
        this.uname = uname;
        this.upass = upass;
        this.udate = udate;
    }

    public int getUid() {
        return uid;
    }

    public void setUid(int uid) {
        this.uid = uid;
    }

    public String getUname() {
        return uname;
    }

    public void setUname(String uname) {
        this.uname = uname;
    }

    public String getUpass() {
        return upass;
    }

    public void setUpass(String upass) {
        this.upass = upass;
    }

    public String getUdate() {
        return udate;
    }

    public void setUdate(String udate) {
        this.udate = udate;
    }

}

ExcelUtil.java 类:

package util;

import java.io.FileOutputStream;
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;
import org.apache.poi.ss.usermodel.HorizontalAlignment;

import pojo.UserPojo;

public class ExcelUtil {
    
    /**
     * 
     * @Title: getUserPojo  
     * @Description: 创建一组测试数据
     * @param 
     * @param  Exception   参数  
     * @date 2018-06-04
     * 
     * @throws  
     * @return List<UserPojo>   返回类型
     * 
     */
    public static List<UserPojo> getUserPojo() throws Exception{
        
        List<UserPojo> list = new ArrayList<UserPojo>();
        UserPojo up1 = new UserPojo(91, "小明", "xiaoming1", "2018、03、21");
        UserPojo up2 = new UserPojo(100, "安妮", "anni", "2018-03-22");
        UserPojo up3 = new UserPojo(93, "dinosaurs", "dinosaurs", "2018年03月02日");
        list.add(up1);
        list.add(up2);
        list.add(up3);
        return list;
    }
    
    /**
     * 
     * @Title: main  
     * @Description: 生成Excel并输出到指定位置
     * @param args
     * @param Exception   参数  
     * @return void   返回类型
     * @date 2018-06-04
     * 
     */
    public static void main(String[] args) throws Exception {
        /*
         * 第一步:------------------------
         */
        //创建一个Webbook,对应着一个Excel文件
        @SuppressWarnings("resource") //去掉警告(也可以定义一个static的全局静态)
        HSSFWorkbook web = new HSSFWorkbook();
        
        /*
         * 第二步:------------------------
         */
        //在webbook中添加一个sheet,对应Excel文件中的sheet (在Excel工作簿中建一工作表,其名为缺省值, 也可以指定Sheet名称)
        HSSFSheet sheet = web.createSheet("2018年度5月人员表");
        
        // 用于格式化单元格的数据
        //HSSFDataFormat format = web.createDataFormat();
        
        /*
         * 第三步:------------------------
         */
        //在sheet中添加表头:且添加到第0行
        HSSFRow row = sheet.createRow(0);
        
        /*
         * 第四步:创建单元格, 添加表头,且让表头居中
         */
        HSSFCellStyle style = web.createCellStyle();
        //style.setDataFormat(format.getFormat("@"));
        
        //居中格式
        style.setAlignment(HorizontalAlignment.CENTER);
        
        
        HSSFCell cell = row.createCell((short) 0);//创建列 处于第0行的第0列
        cell.setCellValue("人员编号"); //设置value值
        sheet.setColumnWidth(0, 20*200);//设置列宽
        cell.setCellStyle(style);//让其居中

        
        cell = row.createCell((short) 1);    
        cell.setCellValue("人员姓名");
        sheet.setColumnWidth(1, 20*200);//设置列宽
        cell.setCellStyle(style);

        
        cell = row.createCell((short) 2);
        cell.setCellValue("人员别称");
        sheet.setColumnWidth(2, 20*200);//设置列宽
        cell.setCellStyle(style);

        
        cell = row.createCell((short) 3);
        cell.setCellValue("注册时间");
        sheet.setColumnWidth(3, 20*200);//设置列宽
        cell.setCellStyle(style);
        
        /*
         * 第五步:--------------------
         */
        //写入实体数据(此处为测试数据)
        List<UserPojo> list = ExcelUtil.getUserPojo();
        
        for (int i = 0; i < list.size(); i++) {
            //一组数据,新增一行
            row = sheet.createRow((int) i + 1);
            UserPojo up = list.get(i);
            
            //接下来。。。将值放进去(重复第四步)
            row.createCell((short) 0).setCellValue(up.getUid());
            row.createCell((short) 1).setCellValue(up.getUname());
            row.createCell((short) 2).setCellValue(up.getUpass());
            row.createCell((short) 3).setCellValue(up.getUdate());
            row.getCell(0).setCellStyle(style); // 循环每一行的第0列
            row.getCell(1).setCellStyle(style); // 循环每一行的第1列
            row.getCell(2).setCellStyle(style); // 循环每一行的第2列
            row.getCell(3).setCellStyle(style); // 循环每一行的第3列

        }
        
        /*
         * 第六步:将新生成的文件通过IO存在电脑的指定位置
         */
        try {
            //创建一个输出流
            FileOutputStream fos = new FileOutputStream("D:/Test.xls");
            //写入文件
            web.write(fos);
            //将缓冲区的内容写入文件
            fos.flush();
            //关闭流,这里想说,如果上述写入数据之后,直接关闭(fos.close())也是可以的,Java虚拟机将会把缓冲区的数据写入文件,但是不推荐
            fos.close();
        } catch (Exception e) {
             e.printStackTrace();    
        }
    }
}

下面是我的效果图:

 

 到此入门篇结束,给自己一个记忆。若是各位有看到不合适的地方,请联系本人。。。

 后面会发一个升级版,主要想做一个Java生成Excel文档方面的总结;

 本文参考了博文:https://blog.csdn.net/u014621859/article/details/54944059

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可私 6信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 、可私信6博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 、可私信6博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值