java 实现excel样式设置(居中、字体、大小、换行、合并行,列宽、指定特定字符串样式等)

1 篇文章 0 订阅
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFClientAnchor;
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFClientAnchor;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

HSSFWorkbook workbook = new HSSFWorkbook();

Sheet sheet = workbook.createSheet();
sheet.setColumnWidth(0, 30*256);//设置当前sheet页第一列宽度
sheet.setColumnWidth(1, 70*256);//第二列宽度

CellStyle style = workbook.createCellStyle();

Font font = workbook.createFont();
font.setFontHeightInPoints((short) 13);
font.setFontName("仿宋_GB2312");
style.setFont(font5);//增加字体样式

style.setAlignment(CellStyle.ALIGN_CENTER);//增加水平居中样式-old
style.setVerticalAlignment(CellStyle.VERTICAL_CENTER);//增加垂直居中样式-old

style.setAlignment(HorizontalAlignment.CENTER);//增加水平居中样式
style.setVerticalAlignment(org.apache.poi.ss.usermodel.VerticalAlignment.CENTER);//增加垂直居中样式

//excle边框样式添加
style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
style.setBorderTop(HSSFCellStyle.BORDER_THIN);
style.setBorderRight(HSSFCellStyle.BORDER_THIN);

//自动换行样式增加
style.setWrapText(true);

Row row=sheet.getRow(0);//获取第一行
if(row==null){sheet.createRow(0);}
Cell cell=row.getCell(0);//获取第一个单元格
if(cell==null){row.createCell(0);}
cell.setCellStyle(style);//开始设置单元格样式 

//设置单元格合并
int startrow=1;
int endrow=1;
int startcol=0;
int endcol=0;
CellRangeAddress  region = new CellRangeAddress (startrow, endrow, startcol, endcol);
sheet.addMergedRegion(region);

---------------------------------指定部分字符串样式

String content="测试数据";

    Font font = workbook.createFont();
    font.setFontHeightInPoints((short) 13);
    font.setFontName("仿宋_GB2312");

    Font font2 = workbook.createFont();
    font2.setUnderline((byte)1);

    HSSFRichTextString hts = new HSSFRichTextString(content);
    int n = content.indexOf("测试");
    hts.applyFont(n, n + 2, font); //从第n位开始,n+2位字符设置字体样式
    hts.applyFont(1,4,font2);//第2位到第4位字符串下添加下划线
    cell.setCellValue(hts);

------------------------------

  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时间 流逝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值