java 生成Excel开门篇
本随笔的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
版权声明:本文为博主原创文章,未经博主允许不得转载
文章地址: http://www.cnblogs.com/hotspring/
java 生成Excel开门篇的更多相关文章
- oracle PL/SQL调用Java生成Excel
现在有个需求, 要求编写oracle存储过程生成Excel文件到指定目录, 但是oracle自己的API貌似不太给力, 所以只能通过另一种更强大的语言来实现了 ——Java.有一个Java框架 ...
- JAVA生成EXCEL模板
JAVA生成excel模板,支持1.必填字段前加 红色 * 2.定义可选值下拉列表 valList3.定义名称并通过名称设置可选值 refName(名称在sheet2,sheet2自动隐藏)4.支持设 ...
- 两种方式实现java生成Excel
Web应用中难免会遇到需要将数据导出并生成excel文件的需求.同样,对于本博客中的总结,也是建立在为了完成这样的一个需求,才开始去了解其实现形式,并且顺利完成需求的开发,先将实现过程总结于此.本博文 ...
- Java生成excel导出文件(使用poi+JXL)
1.使用poi生成文件 package com.mi.entity; import java.util.Date; public class Student { private int id; pri ...
- [转]java生成 excel 并导出文件
原文:https://blog.csdn.net/xunwei0303/article/details/53213130 目前,比较常用的实现Java导入.导出Excel的技术有两种Jakarta P ...
- java生成excel报表文件
此次简单的操作将数据从数据库导出生成excel报表以及将excel数据导入数据库 首先建立数据库的连接池: package jdbc; import java.io.FileInputStream; ...
- java生成excel,word文件
第一部分: 在网站开发中,用户可能需要打印word或者excel表,这种需求是非常多的. java语言生成excel表格和python的方式有点像,使用Apache POI的组件,一通全通.开发过程通 ...
- JAVA生成EXCEL图表
跟据客户的要求,需要开发一套包括图形的报表,还需要导出WORD 图表需要这样: 这样: 这样: 还有这样: 接下来是实现思路: 以往用的最多的就是JFreechart,手上也有实现各种图形的资源,但是 ...
- java生成excel
package test.poi; import java.io.File; import java.io.FileOutputStream; import java.io.OutputStream; ...
随机推荐
- Spring 开发第一步(二)
今天继续学习<Spring in action 3rd>并运行书中的例子,到了第4章aop,是加入一个作为切面的Audience类,将Performer的perform()方法作为切点来进 ...
- 关于省,市,区联动 java 实现方式
关于省,市,区的三级联动后台的实现有两种方式: 1:分三次请求各自取出 省 市 区 的数据: 2:一次请求获得所有的数据,并且组装成相依的数据结构到前端: 其中第一种方式: 会导致数据的延迟加载,出现 ...
- 2018新年 flag 了解一下(每月初更新...)
昨天(2018/3/2)是元宵节,这很恐怖,因为意味着 往后再也找不到这么冠冕堂皇的理由用来偷懒啦~ 嘤嘤嘤~ (我特么反手就是一拳,让你嘤嘤嘤) emm,跑题了. 正文 话说一日之计在于晨,一年之计 ...
- java保留小数点两位的4种方法
import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.NumberFormat; public c ...
- 【wireshark】插件开发(四):Lua插件Post-dissector和Listener
1. Post-dissector post-dissector和dissector不同,它会在所有dissectors都执行过后再被执行,这也就post前缀的由来.post-dissector的构建 ...
- 【wireshark】总体结构
1. 总体结构 wireshark的总体结构如下图所示. 2. 功能模块 模块名 功能 源码子目录 GTK/Qt 处理所有的用户输入/输出(所有的窗口,对话框等等) /ui GTK: /ui/gtk ...
- day 56 linux的安装python3 ,虚拟环境,mysql ,redis
1.1下载python源码包 网址:https://www.python.org/downloads/release/python-366/ 下载地址:https://www.python.org/f ...
- c++之sleep函数
c++之sleep函数 c++中使用sleep函数需要导入第三方库,标准库中没有该函数实现. 我们导入window.h使用Sleep()方法,注意:第一个S要大写,括号中的表示的整数倍的毫秒 Slee ...
- java API连接虚拟机上的hbase
今天用本地的eclipse连接虚拟机上的hbase数据库,代码如下: public static void main(String[] args) throws Exception{ Configur ...
- 扩展中国剩余定理(扩展CRT)详解
今天在$xsy$上翻题翻到了一道扩展CRT的题,就顺便重温了下(扩展CRT模板也在里面) 中国剩余定理是用于求一个最小的$x$,满足$x\equiv c_i \pmod{m_i}$. 正常的$CRT$ ...