利用POI可以实现无模板生成excel,也可以根据模板生成excel。
注:HSSFWorkbook,XSSFWorkbook的区别:前者是解析出来excel 2007 以前版本的,后缀名为xls的,后者是解析excel 2007 版的,后缀名为xlsx。
下面的代码 ,均为解析excel2007以前版本的。
private void writeDateToExcel(List<Model> list, String type, String path, String fileName)
{
FileOutputStream fos = null;
HSSFWorkbook workbook = null;
try
{
workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet();// 创建一个Excel的Sheet
// 设置列宽
sheet.setColumnWidth((short)0, (short)3500);
sheet.setColumnWidth((short)1, (short)3500);
// 另一个字体样式
HSSFFont columnHeadFont = workbook.createFont();
columnHeadFont.setFontName("宋体");
columnHeadFont.setFontHeightInPoints((short)10);
columnHeadFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
// 列头的样式
HSSFCellStyle columnHeadStyle = workbook.createCellStyle();
columnHeadStyle.setFont(columnHeadFont);
columnHeadStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 左右居中
columnHeadStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 上下居中
columnHeadStyle.setLocked(true);
columnHeadStyle.setWrapText(true);
// 设置单元格的背景颜色(单元格的样式会覆盖列或行的样式)
columnHeadStyle.setFillForegroundColor(HSSFColor.WHITE.index);
HSSFFont font = workbook.createFont();
font.setFontName("宋体");
font.setFontHeightInPoints((short)10);