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; ...
随机推荐
- Unity里vertexShader里压扁模型来实现比较low的阴影
只有阴影pass,请自行合并,需要指定高度,忽略深度检测,需要控制好排序,或者去掉忽略,视情况而定,最后我觉得还是shadowmap好 Shader "Custom/MeshShadow&q ...
- Kettle 使用入门
Kettle是一款国外开源的ETL工具,纯java编写,可以在Window.Linux.Unix上运行,数据抽取高效稳定. 本文介绍一个入门例子:使用Kettle从动态指定的文件名对应的文本文件里抽取 ...
- Uliweb之 ORM基本使用(Sqlalchemy)
参考:http://limodou.github.io/uliweb-doc/zh_CN/db/orm.html#title_1-2 ORM基本使用¶ 使用要求¶ 需要安装sqlalchemy 0.7 ...
- Day 61 Django第二天 (orm数据库操作)
一.get请求和post请求 GET请求: 1. 浏览器请求一个页面 2. 搜索引擎检索关键字的时候 POST请求: 1. 浏览器向服务端提交数据,比如登录/注册等 二 . Django中的APP: ...
- SPOJ Substrings
题目链接:戳我 题目大意:给定一个字符串,它的长度n<=2e5.求长度1~n的子串出现的最大次数. 对于一个子串,它的出现次数是多少?就是它所在endpos集合的大小qwq(注意,这里的大小不指 ...
- 《Python绝技:运用Python成为顶级黑客》 用Python实现免杀
1.免杀的过程: 使用Metasploit生成C语言风格的一些shellcode作为载荷,这里使用Windows bindshell,功能为选定一个TCP端口与cmd.exe进程绑定在一起,方便攻击者 ...
- 【Java学习笔记】如何写一个简单的Web Service
本Guide利用Eclipse以及Ant建立一个简单的Web Service,以演示Web Service的基本开发过程: 1.系统条件: Eclipse Java EE IDE for Web De ...
- ngRoute 与ui.router区别
angular路由 路由 (route) ,几乎所有的 MVC(VM) 框架都应该具有的特性,因为它是前端构建单页面应用 (SPA) 必不可少的组成部分. 那么,对于 angular 而言,它自然也有 ...
- 2019CVPR《Mask Scoring R-CNN》
题目:<Mask Scoring R-CNN> CVPR 2019 Oral Paper(2017年783篇论文,获得口头报道的有215篇,oral paper很有含金量) 华中科技大学h ...
- SQL使用子查询,查找班级成绩最高分
-- 根据要求,获取班级成绩的最高分的学生-- 第一个子查询,先去各个科目的最高,再横向比较各个科目的最高,再取最高分的那个科目-- 第二个子查询,查询每个同学的最高分-- 最后,通过第一个子查询查询 ...