poi生成Excel分Excel2003和Excel2007(Excel2010)

以下测试可行:jar包 poi-3.7


//实体类

package com.tuyao.domain;
import java.util.Date;  
  
/** 
 * @author Geloin 
 *  
 */  
public class Person {  
  
    /** 
     * 姓名 
     */  
    private String name;  
  
    /** 
     * 年龄 
     */  
    private int age;  
  
    /** 
     * 生日 
     */  
    private Date birthday;  
  
    /** 
     * 是否学生 
     */  
    private boolean isStudent;  
  
    /** 
     * 身高 
     */  
    private double height;  
  
    public String getName() {  
        return name;  
    }  
  
    public void setName(String name) {  
        this.name = name;  
    }  
  
    public int getAge() {  
        return age;  
    }  
  
    public void setAge(int i) {  
        this.age = i;  
    }  
  
    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;  
    }  
  
}  



//poi处理类

package com.poi.excel.handle;  
  
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.tuyao.domain.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:/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());  
            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);  
    }  
}  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值