poi 设置文本框

1、pom.xml

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>4.1.2</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml-schemas</artifactId>
    <version>4.1.2</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>4.1.2</version>
</dependency>
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-collections4</artifactId>
    <version>4.4</version>
</dependency>
<dependency>
    <groupId>commons-codec</groupId>
    <artifactId>commons-codec</artifactId>
    <version>1.13</version>
</dependency>
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-compress</artifactId>
    <version>1.19</version>
</dependency>
<dependency>
    <groupId>org.apache.xmlbeans</groupId>
    <artifactId>xmlbeans</artifactId>
    <version>3.1.0</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>ooxml-schemas</artifactId>
    <version>1.4</version>
</dependency>

2、poi 设置文本框

package com.poi.test;
import java.awt.Color;
import java.io.*;
import org.apache.poi.xssf.usermodel.*;
import org.openxmlformats.schemas.drawingml.x2006.main.CTTextCharacterProperties;

public class XlsColors23 {

    static String fileName = "I:/home/irfs/data_file/temp/TestWorkbook23.xlsx";

    public static void main(String[] args) throws Exception {
        XSSFWorkbook wb = new XSSFWorkbook();
        XSSFSheet sht = wb.createSheet();
        File file = new File(fileName);
        //列开始值
        int colStart = 5;
        //创建画布
        XSSFDrawing draw = sht.createDrawingPatriarch();
        //创建锚点(0,0,0,0,col1, row1, col2, row2)
        	/*创建一个新的客户端锚,并设置左上角和右下角
              *通过单元格引用和偏移量锚定的坐标。
              * @param dx1第一个单元格内的x坐标。
              * @param dy1第一个单元格内的y坐标。
              * @param dx2第二个单元格内的x坐标。
              * @param dy2第二个单元格内的y坐标。
              * @param col1第一个单元格的列(从0开始)。
              * @param row1第一个单元格的行(从0开始)。
              * @param col2第二个单元格的列(从0开始)。
              * @param row2第二个单元格的行(从0开始)。
        	 */
        XSSFClientAnchor createAnchor = draw.createAnchor(0, 0, 0, 0, colStart, 11, colStart + 6, 11+7);
        //XSSFShapeGroup group = draw.createGroup(createAnchor);
        //*设置该组的坐标空间。 所有孩子都受到约束至这些坐标。( x1,  y1,  x2,  y2)
        //group.setCoordinates(colStart, 11, colStart + 6, 11+7);
        //创建子锚点,左上角和右下角(  x, y, cx, cy)
        //XSSFChildAnchor childAnchor = new XSSFChildAnchor(0, 0, 6, 7);
        //创建文本框
        //XSSFTextBox tb1 = group.createTextbox(childAnchor);
        
      //创建文本框
        XSSFTextBox tb1 = draw.createTextbox(createAnchor);
        
        //设置边框颜色,黑色
        tb1.setLineStyleColor(0, 0, 0);
        //设置边框宽度
        //tb1.setLineWidth(2);
        
        //设置填充色,白色
        Color col = Color.white;
        tb1.setFillColor(col.getRed(), col.getGreen(), col.getBlue());
        
        //富文本字符串
        XSSFRichTextString address = new XSSFRichTextString("测试");
        tb1.setText(address);      
        //文字字符属性
        CTTextCharacterProperties rpr = tb1.getCTShape().getTxBody().getPArray(0).getRArray(0).getRPr();
        //设置字体
        rpr.addNewLatin().setTypeface("Trebuchet MS");
        //设置字体大小9pt
        rpr.setSz(900); 
        //设置字体颜色,蓝色
        col = Color.blue;
        rpr.addNewSolidFill().addNewSrgbClr().setVal(new byte[]{(byte)col.getRed(),(byte)col.getGreen(),(byte)col.getBlue()});

        FileOutputStream fout = new FileOutputStream(file);
        wb.write(fout);
        fout.close();
        wb.close();
    }
}

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值