POI 生成excel表(xls格式)时添加文本框内容

最近需要在excel指定位置添加文本框内容

maven引用poi

 <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>3.7</version>
        </dependency>

完整javamain代码

package com.esoon.zk20s.docgen.test.poi;

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

import java.awt.*;
import java.io.File;
import java.io.FileOutputStream;

public class SetExcelTextAreaTest {
    static String fileName = "D:\\1.xls";

    public static void main(String[] args) throws Exception {
        HSSFWorkbook wb = new HSSFWorkbook();
        HSSFSheet sht = wb.createSheet();
        File file = new File(fileName);
        //列开始值
        short colStart = 5;
        short colEnd = 11;
        //创建画布
        HSSFPatriarch draw = sht.createDrawingPatriarch();
        //创建锚点(0,0,0,0,col1, row1, col2, row2)
        /*创建一个新的客户端锚,并设置左上角和右下角
         *通过单元格引用和偏移量锚定的坐标。
         * @param dH1第一个单元格内的H坐标。
         * @param dy1第一个单元格内的y坐标。
         * @param dH2第二个单元格内的H坐标。
         * @param dy2第二个单元格内的y坐标。
         * @param col1第一个单元格的列(从0开始)。
         * @param row1第一个单元格的行(从0开始)。
         * @param col2第二个单元格的列(从0开始)。
         * @param row2第二个单元格的行(从0开始)。
         */
//        HSSFClientAnchor createAnchor = draw.createTextbox(0, 0, 0, 0, colStart, 11, colStart + 6, 11+7);
        //HSSFShapeGroup group = draw.createGroup(createAnchor);
        //*设置该组的坐标空间。 所有孩子都受到约束至这些坐标。( H1,  y1,  H2,  y2)
        //group.setCoordinates(colStart, 11, colStart + 6, 11+7);
        //创建子锚点,左上角和右下角(  H, y, cH, cy)
        //HSSFChildAnchor childAnchor = new HSSFChildAnchor(0, 0, 6, 7);
        //创建文本框
        //HSSFTeHtBoH tb1 = group.createTeHtboH(childAnchor);

        //创建文本框
        HSSFClientAnchor createAnchor = new HSSFClientAnchor(0, 0, 0, 0, colStart, 11, colEnd, 11+7);
        HSSFTextbox tb1 = draw.createTextbox(createAnchor);

        //设置边框颜色,黑色
        tb1.setLineStyleColor(0, 0, 0);
        //设置边框宽度
        //tb1.setLineWidth(2);

        //设置填充色,白色
        Color col = Color.white;
        tb1.setFillColor(col.getRed(), col.getGreen(), col.getBlue());

        //富文本字符串
        HSSFRichTextString address = new HSSFRichTextString("测试");
        tb1.setString(address);
        //文字字符属性
//        CTTeHtCharacterProperties rpr = tb1.get().getTHBody().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();
    }
}

效果

参考

poi生成xlsx格式文件里写入文本宽框内容

poi 设置文本框_poi 文本框_小百菜的博客-CSDN博客1、pom.xml<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>4.1.2</version></dependency><dependency> <groupId>org.apache.poi</groupIhttps://blog.csdn.net/u014644574/article/details/106014851

猜你喜欢

转载自blog.csdn.net/zp357252539/article/details/129854905