1.形状组HSSFShapeGroup
public class HSSFShapeGroup extends HSSFShape implements HSSFShapeContainer{
}
2.实例
package hssf.shape.shapegroup;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.hssf.usermodel.HSSFChildAnchor;
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.HSSFShapeGroup;
import org.apache.poi.hssf.usermodel.HSSFSimpleShape;
import org.apache.poi.hssf.usermodel.HSSFTextbox;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
/**
* 形状组<br>
* 创建了一个形状组HSSFShapeGroup, 将形状组看似一个单元格,以形状组左上角为原点,x:[0, 1023], y:[0, 255] <br>
* 形状组的子形状位置由HSSFChildAnchor(x1, y1, x2, y2)确定<br>
* 形状组左上角为原点<br>
* x1: 子形状左上角的横坐标,范围[0,1023]<br>
* y1: 子形状左上角的纵坐标,范围[0,255]<br>
* x2: 子形状右下角的横坐标,范围[0,1023]<br>
* y2: 子形状右下角的纵坐标,范围[0,255]<br>
* */
public class TestShapeGroup {
public static void main(String[] args) throws IOException {
// 创建一个工作博
Workbook workbook = new HSSFWorkbook();
// 创建一个sheet
Sheet sheet = workbook.createSheet();
// 画图的顶级管理器对象HSSFPatriarch, 一个sheet只能获取一个
HSSFPatriarch hssfPatriarch = (HSSFPatriarch) sheet.createDrawingPatriarch();
HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 1023, 255, (short) 1, 2, (short) 7, 3);
// 创建一个形状组
HSSFShapeGroup group = hssfPatriarch.createGroup(anchor);
System.out.println("形状组横坐标范围 : " + group.getX1() + " - " + group.getX2());
System.out.println("形状组纵坐标范围 : " + group.getY1() + " - " + group.getY2());
// 创建第一个子形状 - 文本框
HSSFChildAnchor anchor2 = new HSSFChildAnchor(0, 0, 500, 255);
HSSFTextbox textbox = group.createTextbox(anchor2);
textbox.setString(new HSSFRichTextString("hello"));
textbox.setMarginLeft(HSSFShape.LINEWIDTH_ONE_PT * 5);
textbox.setVerticalAlignment(HSSFTextbox.VERTICAL_ALIGNMENT_CENTER);
textbox.setNoFill(true);
textbox.setLineStyleColor(255, 0, 0);
// 创建第二个子形状 - 文本框
HSSFChildAnchor anchor3 = new HSSFChildAnchor(500, 0, 1023, 255);
HSSFSimpleShape textbox1 = group.createShape(anchor3);
textbox1.setShapeType(HSSFSimpleShape.OBJECT_TYPE_COMMENT);
textbox1.setString(new HSSFRichTextString("world"));
FileOutputStream file = new FileOutputStream("C://Users//Administrator//Desktop//test.xls");
workbook.write(file);
file.close();
}
}
结果: