poi生成Excel
来源:互联网 发布:淘宝称呼买家的昵称 编辑:程序博客网 时间:2024/05/19 13:57
需要用到的jar包:poi-3.9-20121203.jar。
源代码示例:
/** * */package com.geloin.poi.bean;import java.util.Date;/** * @author Geloin * */public class Person {/** * 姓名 */private String name;/** * 年龄 */private Integer age;/** * 生日 */private Date birthday;/** * 是否学生 */private boolean isStudent;/** * 身高 */private double height;public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public Date getBirthday() {return birthday;}public void setBirthday(Date birthday) {this.birthday = birthday;}public boolean isStudent() {return isStudent;}public void setStudent(boolean isStudent) {this.isStudent = isStudent;}public double getHeight() {return height;}public void setHeight(double height) {this.height = height;}}
/** * */package com.geloin.poi.main;import java.io.File;import java.io.FileOutputStream;import java.io.OutputStream;import java.text.SimpleDateFormat;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.HSSFFont;import org.apache.poi.hssf.usermodel.HSSFRichTextString;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.util.CellRangeAddress;import com.geloin.poi.bean.Person;/** * @author Geloin * */public class PoiTest {/** * * @param args * @throws Exception */public static void main(String[] args) throws Exception {SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");List<Person> data = new ArrayList<Person>();Person person1 = new Person();person1.setName("张三");person1.setAge(20);person1.setBirthday(format.parse("1989-11-12"));person1.setStudent(true);person1.setHeight(168.8);data.add(person1);Person person2 = new Person();person2.setName("李四");person2.setAge(21);person2.setBirthday(format.parse("1988-11-12"));person2.setStudent(false);person2.setHeight(169.8);data.add(person2);String exportPath = "d:/work/proTmp/geloin/poi/export.xls";OutputStream out = new FileOutputStream(new File(exportPath));// 声明一个工作薄HSSFWorkbook workbook = new HSSFWorkbook();// 生成一个表格HSSFSheet sheet = workbook.createSheet("sheet的名称");// 设置表格默认列宽度为15个字节sheet.setDefaultColumnWidth(15);// 设置标题HSSFCellStyle titleStyle = workbook.createCellStyle();// 居中显示titleStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 标题字体HSSFFont titleFont = workbook.createFont();// 字体大小titleFont.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);titleStyle.setFont(titleFont);HSSFCellStyle contentStyle = workbook.createCellStyle();contentStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);HSSFFont contentFont = workbook.createFont();contentFont.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);contentStyle.setFont(contentFont);// 产生表格标题行HSSFRow row = sheet.createRow(0);String[] headers = new String[] { "序号", "姓名", "年龄", "出生年月", "是否学生","身高" };for (int i = 0; i < headers.length; i++) {HSSFCell cell = row.createCell(i);HSSFRichTextString text = new HSSFRichTextString(headers[i]);cell.setCellValue(text);cell.setCellStyle(titleStyle);}int rowCount = 1;for (int i = 0; i < data.size(); i++, rowCount++) {HSSFRow dataRow = sheet.createRow(rowCount);Person person = data.get(i);// 序号HSSFCell cell0 = dataRow.createCell(0);cell0.setCellValue((i + 1));cell0.setCellStyle(contentStyle);// 姓名HSSFCell cell1 = dataRow.createCell(1);cell1.setCellValue(person.getName());cell1.setCellStyle(contentStyle);// 年龄,转化为String后放到cell里面HSSFCell cell2 = dataRow.createCell(2);cell2.setCellValue(person.getAge().toString());cell2.setCellStyle(contentStyle);// 出生年月,转化为String后放到cell里面HSSFCell cell3 = dataRow.createCell(3);cell3.setCellValue(format.format(person.getBirthday()));cell3.setCellStyle(contentStyle);// 是否学生,转化为String后放到cell里面HSSFCell cell4 = dataRow.createCell(4);String isStudent = person.isStudent() ? "是" : "否";cell4.setCellValue(isStudent);cell4.setCellStyle(contentStyle);// 身高,转化为String后放到cell里面HSSFCell cell5 = dataRow.createCell(5);cell5.setCellValue(String.valueOf(person.getHeight()));cell5.setCellStyle(contentStyle);}// 合并,从第一行到最后一行,从第七列到第七列sheet.addMergedRegion(new CellRangeAddress(0, rowCount - 1, 6, 6));// 合并单元格的内容,合并单元格后,仅会保留第一行,第七列的内容,所以设置第一行第七列的内容HSSFCell cell6 = row.createCell(6);cell6.setCellStyle(contentStyle);cell6.setCellValue("合并单元格的内容");workbook.write(out);}}
简略过程:
1. 通过new HSSFWorkBook生成一个workBook;
2. 通过workBook的createSheet生成一个sheet,即工作表,同时可为工作表命名;
3. 通过sheet的createRow生成一行,sheet中的行数从0开始,表示第一行;
4. 通过row的createCell生成一列,sheet中的列数从0开始,表示第一列;
5. 通过workBook.write,将内容输出到一个excel文件中。
主要说明:
1. HSSFCellStyle用于设定单元格的style;
2. HSSFFont用于设定单元格的字体;
3. 通过sheet.addMergedRegion(开始行号,结束行号,开始列号,结束列号)方法,可合并单元格,当需要合并多行的某列时,设置开始列号等于结束列号即可;当需要合并多列的某行时,设置开始行号等于结束行号即可;
4. Excel有一特性——合并多行时,合并后的内容为合并中的第一行的内容;合并多列时,合并后的内容为合并中的多列的最左上角一列的内容——所以在合并时,只需要设置指定的单元格的内容,即可设置合并后的单元格的内容;
5. 行号和列号均是从0开始的,表示第一行或第一列。
- POI生成excel报表
- poi 生成excel
- 使用POI生成Excel
- POI生成Excel
- poi生成Excel
- poi生成excel
- poi生成Excel
- poi生成Excel
- POI生成Excel
- poi生成Excel
- POI生成excel文件
- POI 生成excel
- POI 生成 EXCEL
- Poi生成Excel文件
- POI 生成Excel
- java poi生成excel
- POI 生成Excel
- poi生成excel文档
- linux 关闭远程回话之后保持进程继续
- Spring MVC,拦截器实现session控制
- VC中Debug和Release区别
- Matlab参数传递手把手教程
- Linux oracle10g 静默安装
- poi生成Excel
- UISwitch 开关控件—IOS开发
- JSON javaScript中的用法
- java BufferedReader 定位读取文件内容
- dos或wamp下修改mysql密码的具体方法
- 零点起飞学Oracle
- Guarded Timed 处理超时的异常
- android Phone 距离感应器锁的实现
- 【我不聪明·在线客服】