直线Line

1.简单的形状 - 直线

直线无法设置填充色,无法设置文本

package hssf.shape.simpleshape;

import java.awt.Shape;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;

import org.apache.poi.hssf.usermodel.HSSFClientAnchor;
import org.apache.poi.hssf.usermodel.HSSFPatriarch;
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
import org.apache.poi.hssf.usermodel.HSSFShape;
import org.apache.poi.hssf.usermodel.HSSFSimpleShape;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;

/**
 * 创建一个直线
 * */
public class TestLine {

	public static void main(String[] args) throws Exception {
		// 创建一个工作博
		Workbook workbook = new HSSFWorkbook();
		// 创建一个sheet
		Sheet sheet = workbook.createSheet();
		// 画图的顶级管理器对象HSSFPatriarch, 一个sheet只能获取一个
		HSSFPatriarch hssfPatriarch = (HSSFPatriarch) sheet.createDrawingPatriarch();
				
		/**
		 * 直线在sheet中位置
		 * new HSSFClientAnchor(x1, y1, x2, y2, (short)startcol, startrow, (short)endcol, endrow)
		 * @param x1     直线一端在开始单元格(startcol, startrow)内的横坐标,范围[0, 2013],将列宽均分为1023份
		 * @param y1     直线一端在开始单元格(startcol, startrow)内的纵坐标,范围[0, 255],将行高均分为255份
		 * @param x2    直线一端在结束单元格(endcol, endrow)内的横坐标,范围[0, 2013],将列宽均分为1023份
		 * @param y2    直线一端在结束单元格(endcol, endrow)内的纵坐标,范围[0, 255],将列宽均分为255份
		 * @param startcol 直线一端所处开始列号,base 0
		 * @param startrow 直线一端所处开始行号,base 0
		 * @param endcol   直线另一端所处结束列号,base 0
		 * @param endrow   直线另一端所处结束行号,base 0
		 * */ 
		HSSFClientAnchor anchor = new HSSFClientAnchor(500, 100, 600, 200, (short)1, 2, (short)4, 8);
		// 创建一个简单形状
		HSSFSimpleShape line = hssfPatriarch.createSimpleShape(anchor);
		
		// 设置形状的类型
		line.setShapeType(HSSFSimpleShape.OBJECT_TYPE_LINE);
		
		// 设置直线宽度为5pt
		line.setLineWidth(HSSFShape.LINEWIDTH_ONE_PT * 5);
		
		// 设置直线颜色
		line.setLineStyleColor(255, 0, 255);
		
		// 设置直线的样式
		line.setLineStyle(HSSFSimpleShape.LINESTYLE_DOTSYS);
		
		// 设置直线水平翻转了
		line.setFlipHorizontal(true);
		
		// 直线无法设置文字,会报错
//		line.setString(new HSSFRichTextString("hello"));
		
		// 直线没有填充色
//		line.setFillColor(255, 0, 0);
		
		FileOutputStream file = new FileOutputStream("C://Users//Administrator//Desktop//test.xls");
		workbook.write(file);
		file.close();
	}

}

结果:


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值