,一般poi 读写excel 的方式有两种: HSSFWorkBook
, XSSFWorkBook(2007)
- 注意: ecxel 2003 有报表数量的限制(65536行),超过这个数字会报错;
一,使用HSSFWorkBook 生成excel;
1,实体类:
package springmvc.model.json;
/**
* excel 实体类测试
* @author WWP
* @date 2016年11月4日上午12:02:12
*/
public class ExcelTestJson {
private String name;
private String age;
private String birthday;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
public ExcelTestJson(String name, String age, String birthday) {
super();
this.name = name;
this.age = age;
this.birthday = birthday;
}
public ExcelTestJson() {
super();
// TODO Auto-generated constructor stub
}
}
2,PoiUtil 工具类
package springmvc.utils;
import java.lang.reflect.Field;
import java.util.List;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
/**
* 下载excel
*
* @author WWP
* @date 2016年10月30日下午11:29:21
*/
public class PoiUtil<T> {
private HSSFWorkbook wb = null;
private Sheet sheet = null;
private Row row = null;
private Cell cell = null;
private CellStyle cellStyle = null;
/**
* 获取 hssfworkbook对象
*
* @param titles
* @param ts
* @return
* @return HSSFWorkbook
*/
public HSSFWorkbook getHssfWorkbook(List<String> titles, List<T> ts) {
wb = new HSSFWorkbook();
setCellStyle();
sheet = wb.createSheet();
setExcelTitle(titles);
setExcelContent(ts);
return wb;
}
/**
* 设置单元个样式
* @return void
*/
private void setCellStyle(){
cellStyle = wb.createCellStyle();
cellStyle.setAlignment(CellStyle.ALIGN_CENTER); //居中
cellStyle.setWrapText(true);//设置自动换行
Font font = wb.createFont();
font.setFontName("黑体");
font.setFontHeightInPoints((short) 1);//设置字体大小
Font font2 = wb.createFont();
font2.setFontName("仿宋_GB2312");
font2.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//粗体显示
font2.setFontHeightInPoints((short) 12);
cellStyle.setFont(fo