Java——POI常用方法(字体,合并单各种样式)

在我们使用poi进行Excel绘制各种样式的时候难免会出现一些问题,接下来就会把常用的一些问题进行汇总,并给出解决方法,如:合并单元格,合并单元格边框线,字体各种样式等。。。。

::."xls"
//XSSF:".xlsx"
XSSFWorkbook workbook = new XSSFWorkbook();
// 创建一个工作表sheet
XSSFSheet sheet = workbook.createSheet();
XSSFRow row = sheet.createRow(0); //获取本sheet第一行
row.setHeightInPoints(30); //设置行高(像素)
XSSFCell cell = row.createCell(0); //获取行里面的第一个单元格
sheet.setColumnWidth(4, 50*256)// 设置第5列的列宽(50设置的话,实际列宽为49.29,如需要设置百分之百的列快,sheet.SetColumnWidth(4,  (int)((50 + 0.72) * 256));  这样就会是50了)
XSSFFont font = workbook.createFont(); //创建字体
font.setFontName("微软雅黑"); //字体
font.setFontHeightInPoints((short) 13); //字体大小
font.setBold(true); //是否加粗
XSSFCellStyle cellStyle = workbook.createCellStyle(); //创建单元格风格
cellStyle.setAlignment(HorizontalAlignment.CENTER); // 设置字体水平居中
cellStyle.setVerticalAlignment(cellStyle.getVerticalAlignmentEnum().CENTER); //设置字体垂直居中
cellStyle.setFont(font); //字体样式存储在整个单元格样式里面
cell.setCellStyle(cellStyle); //设置单元格样式
cell.setCellValue("测试内容"); //设置单元格内容
CellRangeAddress cra = new CellRangeAddress(0,0,0,2); //设置合并单元格(起始行号,终止行号,起始列号,终止列号)
sheet.addMergedRegion(cra); //设置合并内容

//合并单元格内容后,如果需要添加合并过后单元格没有出现边框线,需要补充单元格线,


//设置合并单元格边框
public void setRegionBorder (CellRangeAddress cra,XSSFSheet sheet){
    RegionUtil.setBorderBottom(BorderStyle.THIN, cra, sheet);
    RegionUtil.setBorderLeft(BorderStyle.THIN, cra, sheet);
    RegionUtil.setBorderRight(BorderStyle.THIN, cra, sheet);
    RegionUtil.setBorderTop(BorderStyle.THIN, cra, sheet);
}

//设置单元格边框
public void setBorder ( XSSFCellStyle cellStyle){
    cellStyle.setBorderBottom(BorderStyle.THIN); //下边框
    cellStyle.setBorderLeft(BorderStyle.THIN);//左边框
    cellStyle.setBorderTop(BorderStyle.THIN);//上边框
    cellStyle.setBorderRight(BorderStyle.THIN);//右边框
}



/**
 * 补充单元格样式
 * @param workbook
 * @param row 某行
 * @param cellValue 某个 如"1,2,3"
 */

public void supplementaryCellStyles(XSSFWorkbook workbook,XSSFRow row,String cellValue){
    for (int i = 0 ;i<cellValue.split(",").length;i++){
        XSSFCell cell= row.createCell(Integer.valueOf(cellValue.split(",")[i]));
        XSSFCellStyle cellStyle = workbook.createCellStyle();
        setBorder(cellStyle);
        cell.setCellStyle(cellStyle);
    }
}

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值