本随笔的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开门篇-LMLPHP

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

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

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

版权声明:本文为博主原创文章,未经博主允许不得转载

文章地址: http://www.cnblogs.com/hotspring/

05-11 14:48