struts2导出excel

本文详细介绍使用Java POI库创建Excel文件的过程,包括工作簿、工作表的创建,以及如何设置单元格样式,如背景色、边框、字体、对齐方式等,同时还提供了合并单元格的具体实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//创建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);
}

 

转载于:https://www.cnblogs.com/lingding/p/10985264.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值