创建新Excel

// 创建新的Excel工作簿
HSSFWorkbook workbook = new HSSFWorkbook();
// 在Excel工作簿中建一工作表,其名为缺省值
// 如要新建一名为"效益指标"的工作表,其语句为:
// HSSFSheet sheet =workbook.createSheet("效益指标");
HSSFSheet sheet = workbook.createSheet();// 合并单元格,将第0行,从0列到10列合并
//sheet.addMergedRegion(newRegion(0, (short) 0, 0, (short) 10));//此方法已不推荐使用
sheet.addMergedRegion(new CellRangeAddress(0,0, 1, 4));// 推荐(起行,结行,起列,结列)
// 在sheet索引0的位置创建行(最顶端的行)
HSSFRow row = sheet.createRow(0);
row.setHeight((short)400);//将row的行高设为40px
//在row索引0的位置创建单元格(左上端)
HSSFCell cell = row.createCell(0);
// 定义单元格为字符串类型
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
// 在单元格中输入一些内容
cell.setCellValue("增加值");
// 新建一输出文件流File file = new File(String fileUrlName);
FileOutputStream fOut = newFileOutputStream(file);
// 把相应的Excel工作簿存盘
workbook.write(fOut);
fOut.flush();
// 操作结束,关闭文件
fOut.close();

###########################################################################################

Excel单元格样式

创建红色、粗体字体

HSSFFont font = workbook.createFont();
font.setColor(HSSFFont.COLOR_RED);
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);

创建格式,将字体应用到格式

HSSFCellStyle cellStyle=workbook.createCellStyle();
cellStyle.setFont(font);

3、应用格式

HSSFCell cell = row.createCell((short) 0);
cell.setCellStyle(cellStyle);
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
cell.setCellValue("标题 ");

POI中可能会用到一些需要设置EXCEL单元格格式的操作小结:

先获取工作薄对象:

HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet();
HSSFCellStyle setBorder =wb.createCellStyle();

一、设置背景色:

setBorder.setFillForegroundColor((short)13);// 设置背景色
setBorder.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);

二、设置边框:

setBorder.setBorderBottom(HSSFCellStyle.BORDER_THIN);//下边框
setBorder.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
setBorder.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
setBorder.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框

三、设置居中:

setBorder.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 水平居中
setBorder.setAlignment(HSSFCellStyle.VERTICAL_CENTER);  //垂直居中

四、设置字体:

HSSFFont font = wb.createFont();font.setFontName("黑体");font.setFontHeightInPoints((short) 16);//设置字体大小
font2.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//粗体显示
setBorder.setFont(font);//选择需要用到的字体格式

五、设置列宽:

//第一个参数代表列id(从0开始),第2个参数代表宽度值参考:"2012-08-10"的宽度为2500
sheet.setColumnWidth(0,3766);

六、设置自动换行:

setBorder.setWrapText(true);//设置自动换行

七、合并单元格:

//参数1:行号 参数2:起始列号 参数3:行号 参数4:终止列号
sheet.addMergedRegion (new Region(0,(short)1,0,(short) 2));//不推荐使用
sheet.addMergedRegion(new CellRangeAddress(0,0,0,4));//推荐使用(起行,结行,起列,结列)

八、row的一些方法

1、设置行高

row.setHeight((short)400);