hssfrow 单元格样式_poi导出excel单元格中画斜线_AnyReport报表

2023-10-27

下面是输出excel斜线完整的示例代码,使用的poi类库为:poi-3.8.jar

import java.awt.Color;

import java.io.FileOutputStream;

import org.apache.poi.hssf.usermodel.EscherGraphics;

import org.apache.poi.hssf.usermodel.EscherGraphics2d;

import org.apache.poi.hssf.usermodel.HSSFCell;

import org.apache.poi.hssf.usermodel.HSSFCellStyle;

import org.apache.poi.hssf.usermodel.HSSFClientAnchor;

import org.apache.poi.hssf.usermodel.HSSFPalette;

import org.apache.poi.hssf.usermodel.HSSFPatriarch;

import org.apache.poi.hssf.usermodel.HSSFRow;

import org.apache.poi.hssf.usermodel.HSSFShapeGroup;

import org.apache.poi.hssf.usermodel.HSSFSheet;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

public class TestExcel {

public static final int PERCENT_WIDTH = 50;

public static final int PERCENT_HEIGHT = 20;

public static final float PXTOPT = 0.75f;

public static void main(String[] args) throws Exception {

FileOutputStream fos = new FileOutputStream("D:/line.xls");

HSSFWorkbook wb = new HSSFWorkbook();

HSSFSheet sheet = wb.createSheet("line");

HSSFRow row = sheet.createRow(0);

row.setHeightInPoints(77 * PXTOPT);

final String text = " AB\n\n\n CD";

HSSFCell cell = row.createCell(0);

HSSFCellStyle cellStyle = getCellFormat(wb);

int x1 = 61, y1 = 77;

int x2 = 132, y2 = 76;

int x3 = 144, y3 = 31;

int[] xys = { x1, y1, x2, y2, x3, y3 };

drawLine(sheet, row, 0, 0, 144, 77, xys);

cell.setCellValue(text);

cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_TOP);

cell.setCellStyle(cellStyle);

cell = row.createCell(1);

cell.setCellStyle(cellStyle);

cell = row.createCell(2);

cell.setCellStyle(cellStyle);

cell = row.createCell(3);

cell.setCellStyle(cellStyle);

row = sheet.createRow(1);

row.setHeightInPoints(83 * PXTOPT);

cell = row.createCell(0);

cell.setCellStyle(cellStyle);

cell = row.createCell(1);

cell.setCellStyle(cellStyle);

cell = row.createCell(2);

cell.setCellStyle(cellStyle);

cell = row.createCell(3);

cell.setCellStyle(cellStyle);

int[] xys1 = { 112, 83 };

drawLine(sheet, row, 1, 3, 110, 83, xys1);

wb.write(fos);

}

// draw cell line

private static void drawLine(HSSFSheet sheet, HSSFRow row, int i, int j, int width, int height,

int[] xys) {

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

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

sheet.setColumnWidth(j, cellWidth);

row.setHeight(cellHeight);

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);

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);

}

}

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;

}

}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

hssfrow 单元格样式_poi导出excel单元格中画斜线_AnyReport报表 的相关文章

  • 多处理器架构

    多处理器架构是一种计算机体系结构 它具有多个处理器或中央处理单元 CPU 这些处理器可以同时处理多个任务和数据 多处理器架构可以大大提高计算机的性能和吞吐量 特别是在需要处理大量数据和高度并发的应用程序中 在现代计算机系统中 多处理器架构已
  • UE4 C++ 对结构体数组内元素进行排序

    对结构体数组排序需要两个必要条件 一是结构体定义内重写 lt 操作符 二是元素内必须要有可以用来排序的属性例如int float类型的变量 案例 h UENUM BlueprintType enum class EOrient uint8
  • React Native 技术选型分析

    本文从技术决策讲起 聊聊我们为什么要使用 React Native 如何使用 以及其他维度的思考 文中将用 RN 代表 React Native 1 技术选型决策 技术选型是一个复杂的过程 必须谨慎并保持敬畏 需要根据项目的实际情况而定 这
  • LeetCode 多线程1116. 打印零与奇偶数

    题目https leetcode cn com problems print zero even odd 首先判断奇数偶数 num 1 0 为奇数 可以通过信号量Semaphore来求 class ZeroEvenOdd private i
  • 设计模式之Builder模式(链式调用)

    问题背景 Builder模式在很多地方都有用到 代码风格也比较简洁 但是对其深入的了解并不多 因此在参考其他博客的基础上写此文章 首先先看我的实际应用到Builder模式的场景 场景一 这是在编写RPC简易框架时 需要输入服务端的配置信息时
  • OA 系统工作流引擎 Camunda 实践(1)

    审核人员看清楚再审核 我是把自己公司的案例分析一下 这哪是广告 Camunda是Activiti最大的贡献者之一 除Alfresco以外 同时也是它一个主 要的执行咨询合作伙伴 camunda表示Activiti可能太拘束于Alfresco
  • VMware vCenter Server 8.0安装并添加ESXi 7.0主机(含ESXi 6.7版本升级至7.0版本)

    目录 一 VMware vSphere虚拟化方案名词梳理 1 VMware Workstation 虚拟化工具 2 VMware vSphere 虚拟化方案 2 1 ESXi 裸金属架构的虚拟化技术 2 2 vCenter Server 批
  • # DevOps名词定义梳理

    DevOps名词定义梳理 极限编程座右铭 如果它令你很受伤 那么就做更多的练习 If it hurts do it more often 经常人们会把这些名词用错 构建 就是把源代码制成成品的过程 这个过程一般会有单元测试 集成 将各个项目
  • Python3.7 Scrapy 提示def write(self,data,asyc) 语法错误

    Scrapy 执行爬虫任务 提示如下错误信息如下 from twisted conch import manhole telnet File D python3 6 Lib site packages twisted conch manho
  • es中修改索引名称命令_在Elasticsearch中更改索引名称

    es中修改索引名称命令 嘿 今天 我碰巧写了一个脚本来解决一个看起来很多人都面临的特定问题 重命名给定的Elasticsearch索引 自然地 有记录在案的解决方案 但是我没有Swift找到一个脚本可以让我找到我想要的位置 来自索引a所有数
  • Latex 字体加粗

    textbf w 显示为 w textbf w w
  • mysql数据库datetime字段转换成java中Date类型

    最终代码展示 输出Account类型对象 使用ResultSet类中的getDate方法只能获取到获取到日期不能得到时间 使用ResultSet类中的getTime方法只能获取到获取到时间不能得到日期 使用ResultSet类中的getTi
  • Java 开发中常见的异常有哪些?

    1 空指针异常 NullPointException 当对象不存在 却又去调用对象的属性或方法时 就会出现该异常 2 数组越界异常 ArrayIndexOutOfBoundsException 当数组只存在5个元素 他们所对应的的下标即为0
  • MySQL显示ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)解决方法

    MySQL显示ERROR 2003 HY000 Can t connect to MySQL server on localhost 10061 解决方法 第一步 在win快捷键下已管理员身份启动cmd命令然后进入mysql安装目录下的bi
  • 10信号学习之signal函数及使用其实现信号捕捉案例

    1 signal函数 功能 该函数注册一个信号捕捉函数 对比上一篇的案例和相关函数 都是针对于信号集操作的 而这个函数是针对处理动作来操作的 你可以利用此函数将捕捉到的信号按自己的方式执行 例如你可以捕捉段错误的信号后执行打印hello w
  • STM32无法下载程序

    新研发了一块STM32板 MCU使用的是STM32F4 前期硬件测试都是正常的 电源等各项硬件指标都是正常的 但是在下载程序测试的时候出现了问题 板子只能下载第一次程序成功 第二次就不能识别芯片 无法下载程序 貌似MCU被锁死 检查原理图并
  • warning: unknown attribute ‘at‘ ignored [-Wunknown-attributes] keil报错处理

    背景在KEIL v6版本编译 attribute at 语句 const unsigned char vis sensor fw attribute at 0X0800C800 0x98 0x14 0x00 0x20 0x65 0x01 0
  • java Spring调试 ApplicationContext cannot be resolved to a type

    今天开发过程中遇到了不能识别导入的Spring jar包的情况 ApplicationContext cannot be resolved to a type 本人分析情况为两种 1 导入的包错误 2 本人遇到的情况 就是jre版本过高 将
  • RawImages图片加载方式

    using UnityEngine using UnityEngine UI public class RawImagesExtend MonoBehaviour Header 资源加载方式 public SourceMode source

随机推荐

  • java底层学习

    额 马上就要面试了 java的底层肯定是需要了解的 网上找了找java的底层文章 做个记号 java底层主要是类的加载 连接和初始化 本文主要分为四个方面 1 java底层概述 2 new和newInstance 方法的区别 3 深入探讨j
  • activiti5之监听器

    activiti5之监听器 业务场景 在使用工作流时 通常伴随着很多具体的需求 例如 activiti人员动态的分配 当前任务节点完成的时候 指定需要指定下一个节点的处理人 比如 一个请假流程 a员工请假 需要指定下一步需要处理请假流程的领
  • Python目标检测数据集格式处理,VOC格式转YOLO格式

    众所周知 CV算法模型训练第一步该做的是数据集制作 最近遇到需要将VOC格式的数据集转为yolo格式 数据集前期的一些预处理参考博客 Python删除txt文档的某一列 fengfeng18k的博客 CSDN博客 Python修改txt某列
  • 卷积神经网络(CNN)入门:使用Python实现手写数字识别

    在上一篇文章中 我们介绍了如何使用Python实现一个简单的前馈神经网络 本文将重点介绍卷积神经网络 CNN 这是一种在计算机视觉任务中表现优异的深度学习模型 我们将从卷积神经网络的基本原理开始 介绍卷积层 池化层和全连接层等概念 然后使用
  • js实现回到顶部效果

    功能 滚动到第二屏才出现 返回顶部 按钮 点击 返回顶部 按钮会返回顶部 而且速度越来越慢 在返回顶部的途中如果用鼠标滚一下滚轮会停止返回顶部的滚动
  • python数据分析(预测性分析与机器学习)

    本文涉及到的主题如下所示 预处理 基于逻辑回归的分类 基于支持向量机的分类 基于ElasticNetCV的回归分析 支持向量回归 基于相似性传播 均值漂移算法 遗传算法 神经网络 决策树算法 1 预处理 在上一章 我们已经做过一次预处理 即
  • 复现iis7/ii7.5的fastcgi解析漏洞

    在windows server 2008 r2上搭建 php服务 1 下载php解释器 地址为http windows php net download 版本有两种 线程安全和非线程安全 线程安全是给apache用的 非线程安全是给iis用
  • 东方树叶、元气森林竞速无糖茶饮

    近几年 随着气泡水 茶饮品的横空出世 零售饮料柜的全糖时代已经渐行渐远 无糖饮料开始占据着半壁江山 据统计 在2023年推出的41款茶饮料新品中 无糖茶的创新超过6成 总计有18个品牌推出25款无糖茶新品 36种口味 所谓无糖茶 也叫原味茶
  • 【从零开始写博客】数组运用:二分查找和成员增删(day1)

    代码随想录刷题60天 目录 数组概述 array 一 数组的查找 暴力查找 枚举 二分查找 二 数组的删改 使用快慢指针对数组元素进行增删 总结 数组概述 array 数组作为一种数据结构 毫无疑问 其基本功能便是为程序员提供一种可增删查改
  • git中reset、restore、checkout、revert、clean的用法和区别

    1 git reset NAME git reset Reset current HEAD to the specified state SYNOPSIS git reset soft mixed N hard merge keep q
  • 通过rancher快速部署Kubernetes集群

    文章目录 概述 架构设计 Kubernetes Rancher 准备工作 安装Rancher 登录Rancher 创建K8S集群 部署工作负载 概述 What s Rancher Rancher是一套容器管理平台 它可以帮助组织在生产环境中
  • Python3.8.5版本下载步骤

    一 下载 1 进入官网地址 2 进入此界面 下滑到最后 3 点击进行下载 4 保存 等候下载完毕 二 安装 1 双击Python 3 8 5 amd64 exe进行下载 2 勾选Add选项 再选择Customize installation
  • 20分钟轻松完成2篇申请文书?ChatGPT到底是黑科技还是黑名单?

    自从ChatGPT与2022年底正式出道并走红之后 各大领域都纷纷浮现使用这款人工智能软件完成本属于人类工作的现象 如果你以为它就像手机上呼叫一声就能帮你查看天气或者设置闹钟的机器人一样那就错了 ChatGPT能够在一段对话中结合你给的信息
  • 海思3559av100 内核启动优化

    在内核目录下 使用menuconfig去裁剪内核 配置裁剪内核 make ARCH arm64 CROSS COMPILE aarch64 himix100 linux menuconfig 然后覆盖以前的配置文件 cp config ar
  • git-lfs安装及clone常见问题

    1 安装git for windows 3 20版本 报错Could not find git can not register Git LFS 错误原因 可能这个版本有问题 参考 Could not find Git can not re
  • Stata学习笔记

    今天学习的视频是 stata入门 国泰安和锐思数据下载 哔哩哔哩 bilibili up主 差点没头 stata入门 从国泰安导入数据 哔哩哔哩 bilibili 目录 1 从CSMAR下载数据 以下载年报中的数据为例 2 导入stata中
  • 网站根目录打不开服务器拒绝,检查网站打不开的三种原因

    自己做了网站之后 如果在实际访问中 出现了网站打不开的情况 怎么去查找什么原因导致了网站打不开呢 可以通过下面三个方面去检查一下到底自己做网站时哪里出现了问题 一 检查网站域名是否出问题 网站在线方式有二种 一种是租用虚拟主机 一种是服务器
  • 经济2023---风口

    改革开放以来 中国共有12次比较好的阶级跃迁的机会 包括80年代选部委院校 办乡镇企业 倒卖商品 90年代下海 选外语外贸 炒股 00年代从事资源品行业 选金融 炒房 10年代选计算机 搞互联网 买比特币 从这里面我们能总结出什么规律呢 总
  • Intellij IDEA 插件下载慢或无法查询

    由于前段时间迷上一个臊皮的idea UI doki 以下效果 在关闭掉该插件以后 出现了UI残留的现象 重装 导入以前的setting依然无法解决这个问题 只好重新下载一个干净的idea 以前的插件又得重新下载 然鹅新的idea下载到一半直
  • hssfrow 单元格样式_poi导出excel单元格中画斜线_AnyReport报表

    下面是输出excel斜线完整的示例代码 使用的poi类库为 poi 3 8 jar import java awt Color import java io FileOutputStream import org apache poi hs