@Override
public HSSFWorkbook exportExcel(List<Xx> list)
{
HSSFWorkbook wb=new HSSFWorkbook();
HSSFSheet sheet=wb.createSheet(); //工作表
HSSFRow row = null; //行对象
HSSFCell cell=null; //单元格对象
CellRangeAddress cra=null; //用于合并单元格
//设置单元格样式1,字体加粗居中可换行,用于标题样式
HSSFCellStyle style1=wb.createCellStyle();
style1.setAlignment(HSSFCellStyle.ALIGN_CENTER);
style1.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
HSSFFont font1=wb.createFont();
font1.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
style1.setFont(font1);
style1.setWrapText(true);
setBorder(style1); //添加边框
//设置单元格样式2,居中可换行,用于普通样式
HSSFCellStyle style2=wb.createCellStyle();
style2.setAlignment(HSSFCellStyle.ALIGN_CENTER);
style2.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
style2.setWrapText(true);
setBorder(style2);//添加边框
//行索引变量
int rowIndex=0;
//总列数
int cellCount=5;
//设置标题
String title="xx表";
//创建标题行
row=sheet.createRow(rowIndex++); //创建行对象
cell=row.createCell(0); //创建单元格
cell.setCellValue(title); //设置单元格内容
cell.setCellStyle(style1); //设置单元格样式
/*合并单元格,标题占5列*/
//参数:(起始行,结束行,起始列,结束列)从0开始,
cra=new CellRangeAddress(rowIndex-1, rowIndex-1, 0, 4);
sheet.addMergedRegion(cra);
setBorder(cra,sheet,wb);//合并的单元格设置边框
//表头
String[] header=new String[5];
header[0]="序号";
header[1]="字段1";
header[2]="字段2";
header[3]="字段3";
header[4]="字段4";
row=sheet.createRow(rowIndex++);
for(int i=0;i<header.length;i++)
{
cell=row.createCell(i);
cell.setCellValue(header[i]);
cell.setCellStyle(style1);
}
//创建数据行
for(int i=0;i<List.size();i++)
{
Xx xx=List.get(i);
row=sheet.createRow(rowIndex++);
cell=row.createCell(0);
cell.setCellValue(i+1);
cell.setCellStyle(style2);
cell=row.createCell(1);
cell.setCellValue(xx.get1());
cell.setCellStyle(style2);
cell=row.createCell(2);
cell.setCellValue(xx.get2());
cell.setCellStyle(style2);
cell=row.createCell(3);
cell.setCellValue(xx.get3());
cell.setCellStyle(style2);
cell=row.createCell(4);
cell.setCellValue(xx.get4());
cell.setCellStyle(style2);
}
return wb;
}
/**
* 对合并的单元格设置边框
* @param cra
* @param sheet
* @param wb
*/
private void setBorder(CellRangeAddress cra,HSSFSheet
sheet,HSSFWorkbook wb)
{
RegionUtil.setBorderBottom(1, cra, sheet,wb); // 下边框
RegionUtil.setBorderLeft(1, cra, sheet,wb); // 左边框
RegionUtil.setBorderRight(1, cra, sheet,wb); // 有边框
RegionUtil.setBorderTop(1, cra, sheet,wb); // 上边框
}
/**
* 对单个单元格设置边框
* @param style
*/
private void setBorder(HSSFCellStyle style)
{
style.setBorderBottom(HSSFBorderFormatting.BORDER_THIN);
style.setBorderLeft(HSSFBorderFormatting.BORDER_THIN);
style.setBorderRight(HSSFBorderFormatting.BORDER_THIN);
style.setBorderTop(HSSFBorderFormatting.BORDER_THIN);
}
poi导出excel后台代码示例
最新推荐文章于 2023-07-11 10:48:45 发布