You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Excel OfficeScript(TypeScript)连接两个形状?

Excel OfficeScript 连接两个形状的正确实现

你尝试用Excel OfficeScript(TypeScript超集)连接两个形状,通过Google Gemini获取的伪代码逻辑符合需求,但worksheet对象不存在insertConnector()方法,无法运行。原伪代码如下:

// Get the two shapes you want to connect
const startShape = worksheet.getShapes().getByName("startShapeName");
const endShape = worksheet.getShapes().getByName("endShapeName");

// Create a connector object
const connector = worksheet.insertConnector(startShape, endShape);

// Choose a connector type (e.g., straight, elbow, etc.)
connector.setConnectorType(Excel.ConnectorType.Straight);

// Format the connector (optional)
connector.strokeLine({ color: "red" })

正确实现代码

在Excel OfficeScript中,需先插入连接器形状,再通过connectToShape方法绑定目标形状并指定连接点,示例代码如下:

function main(workbook: ExcelScript.Workbook) {
  const worksheet = workbook.getActiveWorksheet();
  // 获取目标形状
  const startShape = worksheet.getShapes().getByName("startShapeName");
  const endShape = worksheet.getShapes().getByName("endShapeName");

  if (!startShape || !endShape) {
    console.log("未找到指定名称的形状");
    return;
  }

  // 插入直连连接器(可替换为Elbow、Curve等类型)
  const connector = worksheet.addShape(ExcelScript.ShapeType.connectorStraight, 0, 0, 100, 100);
  
  // 设置连接器类型
  connector.setConnectorType(ExcelScript.ConnectorType.straight);

  // 绑定两个形状的连接点(此处用起始形状右侧、结束形状左侧,可按需调整)
  connector.connectToShape(startShape, ExcelScript.ShapeConnectionSite.right);
  connector.connectToShape(endShape, ExcelScript.ShapeConnectionSite.left);

  // 设置连接器样式:红色粗线条
  connector.getLineFormat().getColor().setRGB(255, 0, 0);
  connector.getLineFormat().setWeight(2);
}

关键说明

  1. 用addShape插入连接器,初始位置和尺寸会在绑定形状后自动适配
  2. 通过ShapeConnectionSite指定形状的连接点位(如上下左右等)
  3. 利用getLineFormat调整连接器的颜色、粗细等样式
  4. 最终可实现两个形状之间通过指定样式的线条连接,与你期望的效果一致

内容的提问来源于stack exchange,提问作者PintSizeSlash3r

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 12:24:58