您的位置:首页 > 其它

poi生成Excel

2015-03-18 14:30 246 查看
 需要用到的jar包:poi-3.9-20121203.jar。

        源代码示例:

[java] view
plaincopy





/** 

 *  

 */  

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;  

    }  

  

}  

[java] view
plaincopy





/** 

 *  

 */  

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开始的,表示第一行或第一列。

文章转载:http://blog.csdn.net/geloin/article/details/17219885
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  poi生成Excel