如何用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); }
关键说明
- 用
addShape插入连接器,初始位置和尺寸会在绑定形状后自动适配 - 通过
ShapeConnectionSite指定形状的连接点位(如上下左右等) - 利用
getLineFormat调整连接器的颜色、粗细等样式 - 最终可实现两个形状之间通过指定样式的线条连接,与你期望的效果一致
内容的提问来源于stack exchange,提问作者PintSizeSlash3r
相关产品推荐
相关产品推荐

