本文主要是介绍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); }
}
这篇关于poi生成Excel分Excel2003和Excel2007(Excel2010)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!