//创建workbook
HSSFWorkbook workbook = new HSSFWorkbook();
//创建sheet页
HSSFSheet sheet = workbook.createSheet("开票");
//================================================================================================================================
// //设置样式对象
HSSFCellStyle cellStyle = workbook.createCellStyle();
cellStyle.setFillForegroundColor(HSSFColor.TAN.index);// 设置背景色
cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);//设置在上中下位置(此属性如果不设置,那么上中下左右等就不会起作用)
cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//垂直
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 居中
cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
//表头标题样式
HSSFFont font = workbook.createFont();
font.setFontName("黑体");
font.setFontHeightInPoints((short) 12);//设置字体大小
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//粗体显示
cellStyle.setFont(font);//====================将字体样式添加到样式对象里
cellStyle.setLocked(true);
//表头样式
HSSFFont ft = workbook.createFont();
ft.setFontName("宋体");
ft.setFontHeightInPoints((short) 12);// 字体大小
HSSFCellStyle style = workbook.createCellStyle();
style.setFillForegroundColor(HSSFColor.LEMON_CHIFFON.index);// 设置背景色
style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);//设置在上中下位置(此属性如果不设置,那么上中下左右等就不会起作用)
style.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
style.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
style.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
style.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
style.setFont(ft);
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 左右居中
style.setWrapText(true); // 换行
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 上下居中
// style.setLocked(true);
// 普通单元格样式(中文)
HSSFFont font2 = workbook.createFont();
font2.setFontName("宋体");
font2.setFontHeightInPoints((short) 12);
HSSFCellStyle style2 = workbook.createCellStyle();
style2.setFillForegroundColor(HSSFColor.LIGHT_TURQUOISE.index);
style2.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);//设置在上中下位置(此属性如果不设置,那么上中下左右等就不会起作用)
style2.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
style2.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
style2.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
style2.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
style2.setFont(font2);
style2.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 左右居中
style2.setWrapText(true); // 换行
style2.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 上下居中
//==================================================================================================================================
//创建单元格
HSSFRow row = sheet.createRow(0); //创建第一行 ;依次往下新建行
this.createCellTitle(row,0,"序号",cellStyle);
this.createCellTitle(row,1,"开票单号",cellStyle);
....
this.mergeCell(sheet,0, 0, 23,29);//??
this.createCellTitle(row,23,"xxxxx",cellStyle);
for (int k = 0; k < 23; k++)
{
this.mergeCell(sheet,0, 1, k, k);
}
row = sheet.createRow(rowIndex);
this.createCellTitle(row,0,(i+1)+"",dataStyle);
this.createCellTitle(row,1,info.getInvoiceNo(),dataStyle);
........
/**
* 合并单元格
*/
public void mergeCell(HSSFSheet sheet,int firstRow,int lastRow,int firstCol,int lastCol)
{
CellRangeAddress address = new CellRangeAddress(firstRow, lastRow, firstCol, lastCol);
sheet.addMergedRegion(address);
}