//工具类

public class PoiUtil {

public static final int PERCENT_WIDTH = 50;

public static final int PERCENT_HEIGHT = 20;

public static final float PXTOPT = 0.75f;

// draw cell line

/**

* @param sheet 页签

* @param i 行

* @param j 列

* @param width 单元格宽度

* @param height 单元格高度

*/

public static void drawLine(HSSFSheet sheet, int i, int j, int width, int height) {

int cellWidth = (int) (PERCENT_WIDTH * PXTOPT * width);

short cellHeight = (short) (PERCENT_HEIGHT * PXTOPT * height);

HSSFPatriarch patriarch = sheet.createDrawingPatriarch();

HSSFClientAnchor a = new HSSFClientAnchor(0, 0, 1023, 255, (short) j, i, (short) (j), i);

HSSFShapeGroup group = patriarch.createGroup(a);

float verticalPointsPerPixel = a.getAnchorHeightInPoints(sheet);

EscherGraphics g = new EscherGraphics(group, sheet.getWorkbook(), Color.black,

verticalPointsPerPixel);

EscherGraphics2d g2d = new EscherGraphics2d(g);

int[] xys = {width, height};

for (int l = 0; l < xys.length; l += 2) {

int x = (int) ((PERCENT_WIDTH * 0.75 * xys[l] / cellWidth) * 1023);

int y = (int) ((PERCENT_HEIGHT * 0.75 * xys[l + 1] / cellHeight) * 255);

//g2d.drawLine(0, 0, x, y); 左上右下

g2d.drawLine(0, y, x, 0);

}

}

public static HSSFCellStyle getCellFormat(HSSFWorkbook wb) {

HSSFCellStyle cellStyle = wb.createCellStyle();

if (cellStyle.getBorderBottom() != HSSFCellStyle.BORDER_THIN) {

cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);

}

if (cellStyle.getBorderLeft() != HSSFCellStyle.BORDER_THIN) {

cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);

}

if (cellStyle.getBorderTop() != HSSFCellStyle.BORDER_THIN) {

cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);

}

if (cellStyle.getBorderRight() != HSSFCellStyle.BORDER_THIN) {

cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);

}

cellStyle.setBottomBorderColor(createPette(wb));

cellStyle.setLeftBorderColor(createPette(wb));

cellStyle.setRightBorderColor(createPette(wb));

cellStyle.setTopBorderColor(createPette(wb));

return cellStyle;

}

public static short createPette(HSSFWorkbook wb) {

short petteIndex = 0;

Color rgb = new Color(0x00, 0x00, 0x00);

HSSFPalette palette = wb.getCustomPalette();

palette.setColorAtIndex(petteIndex, (byte) rgb.getRed(), (byte) rgb.getGreen(), (byte) rgb

.getBlue());

return petteIndex;

}

//调用地:

//sheet0操作页签,i行号,j列号,cell0当前单元格(通过row0获得),row0当前行(通过sheet0获得)

PoiUtil.drawLine(sheet0, i, j, sheet0.getColumnWidth(cell0.getColumnIndex()), row0.getHeight());

效果:

java excel 单元格 斜线_POI实现excel单元格画斜线相关推荐

  1. java excel单元格背景色_POI 设置Excel单元格背景色(setFillForegroundColor)

    背景介绍: 使用Java开发信息系统项目,项目中往往会涉及到报表管理部分,而Excel表格首当其冲称为最合适的选择,但是对单元格操作时对于设置单元格的背景颜色却很少提及,本文旨在方便单元格背景颜色设计 ...

  2. hssfrow 单元格样式_POI设置Excel单元格样式

    POI中可能会用到一些需要设置EXCEL单元格格式的操作小结: 先获取工作薄对象: HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb ...

  3. java excel 导入 加校验_POI实现excel各种验证和导入的思路总结

    制定标准 导入总是与导出相辅相成的,无规矩不成方圆.所谓的标准都是大家一同来维护和遵守的,那么首先就是制定一个模板. 这样可以减少验证的工作量. 例如时间的规范[yyyy-MM-dd],获取单元格的时 ...

  4. java poi 加粗居中_poi生成excel整理(设置边框/字体/颜色/加粗/居中/)

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

  5. java导出excel居中不生效_POI 导出Excel 设置内容居中 换行

    表头设置: HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.createSheet("导出数据& ...

  6. hssfrow 单元格样式_poi的各种单元格样式以及一些常用的配置

    之前我做过一个poi到处excel数据的博客,但是,后面使用起来发现,导出的数据单元格样式都不对. 很多没有居中对齐,很多单元格的格式不对,还有就是单元格的大小不对,导致数据显示异常,虽然功能可以使用 ...

  7. excel单元格斜线_怎么在excel中画斜线?怎么在excel表格中画斜线?

    在excel表格中画斜线的技巧教程: 1.在Excel中打开一个空白工作簿. 2.您可以在任何大小的单元格中执行此操作,但是如果先将其增大则更容易理解.为此,我们只需单击并按住第1行和第2行之间的线, ...

  8. excel单元格斜线_掌握Excel的这个制表技巧,“小白老师”也能变“超神”!

    在Excel表格的制作中,相信老师们都经常会碰到需要使用斜线的情况,由于Excel软件中没有自带"绘制斜线表头"的功能,很多老师对此无比头疼,其实,在Excel中有很多方法可以制作 ...

  9. java excel 边框_【web开发】☆★之利用POI操作Excel表格系列教程【9】单元格边框处理...

    [web开发]☆★之利用POI操作Excel表格系列教程[9]单元格边框处理 package csg.xiaoye.poidemo; import java.io.FileOutputStream; ...

  10. excel@表格斜线和内容填充@单元格大小调整

    文章目录 excel@表格斜线和内容填充@单元格大小调整 绘制斜线 单斜线 设置任意斜线 输入内容 单元格内换行 单元格大小调整 excel@表格斜线和内容填充@单元格大小调整 excel的表格斜线制 ...

最新文章

  1. 派生类的继承方式【C++继承】
  2. java基础学习(一)hashcode
  3. robotframework笔记5
  4. 新特性:postgresql的vacuum漫谈
  5. Ubuntu 安装 Redis (非源码Build方式)
  6. #ifdef __cplusplus extern C { #endif”的定义
  7. C++控制CPU核的使用
  8. 打印html文件都是空白页,我打印时的额外空白页面(IE中除外) – 是我的打印css吗?...
  9. Android自定义动画之实现3D翻转的动画
  10. K8s 使用helm 安装 EFK和ELK分布式日志分析系统系列(es版本:6.7.0;)
  11. springboot集成ureport2
  12. ZEMAX | 在OpticStudio中建立扩增实境(VR)头戴式显示器
  13. 信道滤波带宽,信号带宽,频率误差的关系
  14. 又一家初创公司获得数千万融资进军边缘计算赛道!
  15. 订单拆单-产品逻辑分析研究
  16. 博学而笃志,切问而近思,仁在其中矣
  17. 粥 淡薄之中滋味长
  18. vue 中嵌入iframe页面
  19. GitHub使用教程详细图解
  20. php ecb加密,PHP使用TripleDes,PKCS7和ECB加密/解密

热门文章

  1. MVX-Net | 多模型三位像素网络用于3D目标检测
  2. 仿新浪微博布局学习——妙用TabHost
  3. 在 CSDN 官宣了,二哥要和华为大佬一起创业了!也许以后洛阳的小伙伴回乡又多了一个选择!
  4. 计算机重启后打印机无法连接不上,共享打印机电脑重启就无法连接怎么办
  5. 论文篇-----高速公路交通流数据质量控制及评价方法
  6. 业务部门战略规划与支撑部门战略规划
  7. 【BZOJ4199】【NOI2015】品酒大会(后缀数组)
  8. windows连接局域网打印机出现0x0000007c错误处理方法
  9. 英语四六级考试系统+爬虫获取试题的系统(数据库设计)的开发思路
  10. 神经网络发展的三个阶段,人工神经网络的发展