# GC.Spread.Sheets.Shapes.ShapeBase

## Content

# Class: ShapeBase

[Sheets](../modules/GC.Spread.Sheets).[Shapes](../modules/GC.Spread.Sheets.Shapes).ShapeBase

## Hierarchy

- **`ShapeBase`**

  ↳ [`CameraShape`](GC.Spread.Sheets.Shapes.CameraShape)

  ↳ [`ConnectorShape`](GC.Spread.Sheets.Shapes.ConnectorShape)

  ↳ [`GroupShape`](GC.Spread.Sheets.Shapes.GroupShape)

  ↳ [`PictureShape`](GC.Spread.Sheets.Shapes.PictureShape)

  ↳ [`Shape`](GC.Spread.Sheets.Shapes.Shape)

## Table of contents

### Constructors

- [constructor](GC.Spread.Sheets.Shapes.ShapeBase#constructor)

### Methods

- [allowMove](GC.Spread.Sheets.Shapes.ShapeBase#allowmove)
- [allowResize](GC.Spread.Sheets.Shapes.ShapeBase#allowresize)
- [allowRotate](GC.Spread.Sheets.Shapes.ShapeBase#allowrotate)
- [alt](GC.Spread.Sheets.Shapes.ShapeBase#alt)
- [canPrint](GC.Spread.Sheets.Shapes.ShapeBase#canprint)
- [dynamicMove](GC.Spread.Sheets.Shapes.ShapeBase#dynamicmove)
- [dynamicSize](GC.Spread.Sheets.Shapes.ShapeBase#dynamicsize)
- [endColumn](GC.Spread.Sheets.Shapes.ShapeBase#endcolumn)
- [endColumnOffset](GC.Spread.Sheets.Shapes.ShapeBase#endcolumnoffset)
- [endRow](GC.Spread.Sheets.Shapes.ShapeBase#endrow)
- [endRowOffset](GC.Spread.Sheets.Shapes.ShapeBase#endrowoffset)
- [getFormula](GC.Spread.Sheets.Shapes.ShapeBase#getformula)
- [height](GC.Spread.Sheets.Shapes.ShapeBase#height)
- [hyperlink](GC.Spread.Sheets.Shapes.ShapeBase#hyperlink)
- [isLocked](GC.Spread.Sheets.Shapes.ShapeBase#islocked)
- [isSelected](GC.Spread.Sheets.Shapes.ShapeBase#isselected)
- [isVisible](GC.Spread.Sheets.Shapes.ShapeBase#isvisible)
- [name](GC.Spread.Sheets.Shapes.ShapeBase#name)
- [setFormula](GC.Spread.Sheets.Shapes.ShapeBase#setformula)
- [showHandle](GC.Spread.Sheets.Shapes.ShapeBase#showhandle)
- [startColumn](GC.Spread.Sheets.Shapes.ShapeBase#startcolumn)
- [startColumnOffset](GC.Spread.Sheets.Shapes.ShapeBase#startcolumnoffset)
- [startRow](GC.Spread.Sheets.Shapes.ShapeBase#startrow)
- [startRowOffset](GC.Spread.Sheets.Shapes.ShapeBase#startrowoffset)
- [width](GC.Spread.Sheets.Shapes.ShapeBase#width)
- [x](GC.Spread.Sheets.Shapes.ShapeBase#x)
- [y](GC.Spread.Sheets.Shapes.ShapeBase#y)

## Constructors

### <a id="constructor" name="constructor"></a> constructor

• **new ShapeBase**()

Represents the base class for Shape, GroupShape and ConnectorShape.

## Methods

### <a id="allowmove" name="allowmove"></a> allowMove

▸ **allowMove**(`value?`): `any`

Gets or sets whether to disable moving the shape.

**`example`**
```
var heart = sheet.shapes.add("Shape1", GC.Spread.Sheets.Shapes.AutoShapeType.heart, 100, 60, 200, 160);
var state = heart.allowMove();
heart.allowMove(!state);
```

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `value?` | `boolean` | The setting for whether to disable moving the shape. |

#### Returns

`any`

If no value is set, returns the setting for whether to disable moving the shape.

___

### <a id="allowresize" name="allowresize"></a> allowResize

▸ **allowResize**(`value?`): `any`

Gets or sets the resize mode of the shape.

**`example`**
```
var heart = sheet.shapes.add("Shape1", GC.Spread.Sheets.Shapes.AutoShapeType.heart, 100, 60, 200, 160);
var state = heart.allowResize();
heart.allowResize(GC.Spread.Sheets.Shapes.ResizeMode.aspect);
```

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `value?` | `boolean` \| [`ResizeMode`](../enums/GC.Spread.Sheets.Shapes.ResizeMode) | The setting for whether to disable resizing the shape. |

#### Returns

`any`

If no value is set, returns the setting for whether to disable resizing the shape.

___

### <a id="allowrotate" name="allowrotate"></a> allowRotate

▸ **allowRotate**(`value?`): `any`

Gets or sets whether to disable rotating the shape.

**`example`**
```
var heart = sheet.shapes.add("Shape1", GC.Spread.Sheets.Shapes.AutoShapeType.heart, 100, 60, 200, 160);
var state = heart.allowRotate();
heart.allowRotate(!state);
```

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `value?` | `boolean` | The setting for whether to disable rotating the shape. |

#### Returns

`any`

If no value is set, returns the setting for whether to disable rotating the shape.

___

### <a id="alt" name="alt"></a> alt

▸ **alt**(`value?`): `any`

Gets or sets the alternative text of the shape for screen readers.

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `value?` | `string` | The alternative text of the shape. |

#### Returns

`any`

The alternative text of the shape.

___

### <a id="canprint" name="canprint"></a> canPrint

▸ **canPrint**(`value?`): `any`

Gets or sets whether this shape is printable.

**`example`**
```
var heart = sheet.shapes.add("Shape1", GC.Spread.Sheets.Shapes.AutoShapeType.heart, 100, 60, 200, 160);
var state = heart.canPrint();
heart.canPrint(!state);
```

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `value?` | `boolean` | The value that indicates whether this shape is printable. |

#### Returns

`any`

If no value is set, returns whether this shape is printable.

___

### <a id="dynamicmove" name="dynamicmove"></a> dynamicMove

▸ **dynamicMove**(`value?`): `any`

Gets or sets whether the shape moves when hiding or showing, resizing, or moving rows or columns.

**`example`**
```
var heart = sheet.shapes.add("Shape1", GC.Spread.Sheets.Shapes.AutoShapeType.heart, 100, 60, 200, 160);
var state = heart.dynamicMove();
heart.dynamicMove(!state);
```

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `value?` | `boolean` | The value indicates whether the shape moves when hiding or showing, resizing, or moving rows or columns. |

#### Returns

`any`

If no value is set, returns whether this shape dynamically moves.

___

### <a id="dynamicsize" name="dynamicsize"></a> dynamicSize

▸ **dynamicSize**(`value?`): `any`

Gets or sets whether the size of the shape changes when hiding or showing, resizing, or moving rows or columns.

**`example`**
```
var heart = sheet.shapes.add("Shape1", GC.Spread.Sheets.Shapes.AutoShapeType.heart, 100, 60, 200, 160);
var state = heart.dynamicSize();
heart.dynamicSize(!state);
```

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `value?` | `boolean` | The value indicates whether the size of the shape changes when hiding or showing, resizing, or moving rows or columns. |

#### Returns

`any`

If no value is set, returns whether this shape dynamically changes size.

___

### <a id="endcolumn" name="endcolumn"></a> endColumn

▸ **endColumn**(`value?`): `any`

Gets or sets the end column index of the shape position.

**`example`**
```
var heart = sheet.shapes.add("Shape1", GC.Spread.Sheets.Shapes.AutoShapeType.heart, 100, 60, 200, 160);
var n = heart.endColumn();
heart.endColumn(n + 1);
```

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `value?` | `number` | The end column index of the shape position. |

#### Returns

`any`

If no value is set, returns the end column index of the shape position.

___

### <a id="endcolumnoffset" name="endcolumnoffset"></a> endColumnOffset

▸ **endColumnOffset**(`value?`): `any`

Gets or sets the offset relative to the end column of the shape.

**`example`**
```
var heart = sheet.shapes.add("Shape1", GC.Spread.Sheets.Shapes.AutoShapeType.heart, 100, 60, 200, 160);
var n = heart.endColumnOffset();
heart.endColumnOffset(0);
```

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `value?` | `number` | The offset relative to the end column of the shape. |

#### Returns

`any`

If no value is set, returns the offset relative to the end column of the shape.

___

### <a id="endrow" name="endrow"></a> endRow

▸ **endRow**(`value?`): `any`

Gets or sets the end row index of the shape position.

**`example`**
```
var heart = sheet.shapes.add("Shape1", GC.Spread.Sheets.Shapes.AutoShapeType.heart, 100, 60, 200, 160);
var n = heart.endRow();
heart.endRow(n + 2);
```

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `value?` | `number` | The end row index of the shape position. |

#### Returns

`any`

If no value is set, returns the end row index of the shape position.

___

### <a id="endrowoffset" name="endrowoffset"></a> endRowOffset

▸ **endRowOffset**(`value?`): `any`

Gets or sets the offset relative to the end row of the shape.

**`example`**
```
var heart = sheet.shapes.add("Shape1", GC.Spread.Sheets.Shapes.AutoShapeType.heart, 100, 60, 200, 160);
var n = heart.endRowOffset();
heart.endRowOffset(0);
```

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `value?` | `number` | The offset relative to the end row of the shape. |

#### Returns

`any`

If no value is set, returns the offset relative to the end row of the shape.

___

### <a id="getformula" name="getformula"></a> getFormula

▸ **getFormula**(`path`): `string`

Gets the formula string from the shape by the path.

**`example`**
```
sheet.name("Sheet1");
sheet.setValue(0, 1, 150);
var shape1 = sheet.shapes.add("myShape1", GC.Spread.Sheets.Shapes.AutoShapeType.rectangle, 100, 100, 200, 200);
shape1.setFormula("x", "=Sheet1!B1");
shape1.getFormula("x");//returns "=Sheet1!B1"
```

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `path` | `string` | The path which can accept a formula string, it could be one of "x", "y", "width", "height". |

#### Returns

`string`

Returns the formula string from the shape by the path.

___

### <a id="height" name="height"></a> height

▸ **height**(`value?`): `any`

Gets or sets the height of the shape.

**`example`**
```
var heart = sheet.shapes.add("Shape1", GC.Spread.Sheets.Shapes.AutoShapeType.heart, 100, 60, 200, 160);
var n = heart.height();
heart.height(n + 50);
```

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `value?` | `string` \| `number` | The height of the shape specified by a number or formula (starts with =) can get a number value. |

#### Returns

`any`

If no value is set, returns the height of the shape.

___

### <a id="hyperlink" name="hyperlink"></a> hyperlink

▸ **hyperlink**(`value?`): `void` \| [`IHyperlink`](../interfaces/GC.Spread.Sheets.IHyperlink)

Gets or sets the hyperlink of the shape.

**`example`**
```
var shape = sheet.shapes.add("myShape", GC.Spread.Sheets.Shapes.AutoShapeType.rectangle, 62 * 9, 0, 200, 200);
shape.hyperlink({url: "http://www.spreadjs.com", target: 0, tooltip: 'goes to SpreadJS'});
```

#### Parameters

| Name | Type |
| :------ | :------ |
| `value?` | [`IHyperlink`](../interfaces/GC.Spread.Sheets.IHyperlink) |

#### Returns

`void` \| [`IHyperlink`](../interfaces/GC.Spread.Sheets.IHyperlink)

If no value is set, returns the current hyperlink settings of the shape.

___

### <a id="islocked" name="islocked"></a> isLocked

▸ **isLocked**(`value?`): `any`

Gets or sets whether this shape is locked.

**`example`**
```
var heart = sheet.shapes.add("Shape1", GC.Spread.Sheets.Shapes.AutoShapeType.heart, 100, 60, 200, 160);
var state = heart.isLocked();
heart.isLocked(!state);
```

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `value?` | `boolean` | The value that indicates whether this shape is locked. |

#### Returns

`any`

If no value is set, returns whether this shape is locked.

___

### <a id="isselected" name="isselected"></a> isSelected

▸ **isSelected**(`value?`): `any`

Gets or sets whether this shape is selected.

**`example`**
```
var heart = sheet.shapes.add("Shape1", GC.Spread.Sheets.Shapes.AutoShapeType.heart, 100, 60, 200, 160);
var state = heart.isSelected();
heart.isSelected(!state);
```

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `value?` | `boolean` | The value that indicates whether this shape is selected. |

#### Returns

`any`

If no value is set, returns whether this shape is selected.

___

### <a id="isvisible" name="isvisible"></a> isVisible

▸ **isVisible**(`value?`): `any`

Gets or sets whether this shape is visible.

**`example`**
```
var heart = sheet.shapes.add("Shape1", GC.Spread.Sheets.Shapes.AutoShapeType.heart, 100, 60, 200, 160);
var state = heart.isVisible();
heart.isVisible(!state);
```

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `value?` | `boolean` | The value that indicates whether this shape is visible. |

#### Returns

`any`

If no value is set, returns whether this shape is visible.

___

### <a id="name" name="name"></a> name

▸ **name**(`value?`): `any`

Gets or sets the name of the shape.

**`example`**
```
var shape1 = sheet.shapes.add("myShape1", GC.Spread.Sheets.Shapes.AutoShapeType.rectangle, 62 * 9, 0, 200, 200);
var shape2 = sheet.shapes.add("myShape2", GC.Spread.Sheets.Shapes.AutoShapeType.rectangle, 20, 20, 200, 200);
var shape = sheet.shapes.group([shape1, shape2]);
shape.name("myGroupShape");
var shapeName = shape.name();
```

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `value?` | `string` | The name of the shape. |

#### Returns

`any`

If no value is set, returns the name of the shape.

___

### <a id="setformula" name="setformula"></a> setFormula

▸ **setFormula**(`path`, `formula`): `void`

Sets the formula string to the shape by the path.

**`example`**
```
sheet.name("Sheet1");
sheet.setValue(0, 1, 150);
var shape1 = sheet.shapes.add("myShape1", GC.Spread.Sheets.Shapes.AutoShapeType.rectangle, 100, 100, 200, 200);
shape1.setFormula("x", "=Sheet1!B1");
```

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `path` | `string` | The path which can accept a formula string, it could be one of "x", "y", "width", "height". |
| `formula` | `string` | The formula string. |

#### Returns

`void`

___

### <a id="showhandle" name="showhandle"></a> showHandle

▸ **showHandle**(`value?`): `any`

Gets or sets whether to show handle of shape.

**`example`**
```
var heart = sheet.shapes.add("Shape1", GC.Spread.Sheets.Shapes.AutoShapeType.heart, 100, 60, 200, 160);
var state = heart.showHandle();
heart.showHandle(!state);
```

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `value?` | `boolean` | The setting for whether to show handle of shape. |

#### Returns

`any`

If no value is set, returns the setting for whether to show handle of shape.

___

### <a id="startcolumn" name="startcolumn"></a> startColumn

▸ **startColumn**(`value?`): `any`

Gets or sets the starting column index of the shape position.

**`example`**
```
var heart = sheet.shapes.add("Shape1", GC.Spread.Sheets.Shapes.AutoShapeType.heart, 100, 60, 200, 160);
var n = heart.startColumn();
heart.startColumn(n + 2);
```

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `value?` | `number` | The starting column index of the shape position. |

#### Returns

`any`

If no value is set, returns the starting column index of the shape position.

___

### <a id="startcolumnoffset" name="startcolumnoffset"></a> startColumnOffset

▸ **startColumnOffset**(`value?`): `any`

Gets or sets the offset relative to the start column of the shape.

**`example`**
```
var heart = sheet.shapes.add("Shape1", GC.Spread.Sheets.Shapes.AutoShapeType.heart, 100, 60, 200, 160);
var n = heart.startColumnOffset();
heart.startColumnOffset(0);
```

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `value?` | `number` | The offset relative to the start column of the shape. |

#### Returns

`any`

If no value is set, returns the offset relative to the start column of the shape.

___

### <a id="startrow" name="startrow"></a> startRow

▸ **startRow**(`value?`): `any`

Gets or sets the starting row index of the shape position.

**`example`**
```
var heart = sheet.shapes.add("Shape1", GC.Spread.Sheets.Shapes.AutoShapeType.heart, 100, 60, 200, 160);
var n = heart.startRow();
heart.startRow(n + 2);
```

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `value?` | `number` | The starting row index of the shape position. |

#### Returns

`any`

If no value is set, returns the starting row index of the shape.

___

### <a id="startrowoffset" name="startrowoffset"></a> startRowOffset

▸ **startRowOffset**(`value?`): `any`

Gets or sets the offset relative to the start row of the shape.

**`example`**
```
var heart = sheet.shapes.add("Shape1", GC.Spread.Sheets.Shapes.AutoShapeType.heart, 100, 60, 200, 160);
var n = heart.startRowOffset();
heart.startRowOffset(0);
```

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `value?` | `number` | The offset relative to the start row of the shape. |

#### Returns

`any`

If no value is set, returns the offset relative to the start row of the shape.

___

### <a id="width" name="width"></a> width

▸ **width**(`value?`): `any`

Gets or sets the width of the shape.

**`example`**
```
var heart = sheet.shapes.add("Shape1", GC.Spread.Sheets.Shapes.AutoShapeType.heart, 100, 60, 200, 160);
var n = heart.width();
heart.width(n + 50);
```

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `value?` | `string` \| `number` | The width of the shape specified by a number or formula (starts with =) can get a number value. |

#### Returns

`any`

If no value is set, returns the width of the shape.

___

### <a id="x" name="x"></a> x

▸ **x**(`value?`): `any`

Gets or sets the horizontal location of the shape.

**`example`**
```
var heart = sheet.shapes.add("Shape1", GC.Spread.Sheets.Shapes.AutoShapeType.heart, 100, 60, 200, 160);
var n = heart.x();
heart.x(n + 50);
```

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `value?` | `string` \| `number` | The horizontal location of the shape specified by a number or formula (starts with =) can get a number value. |

#### Returns

`any`

If no value is set, returns the horizontal location of the shape.

___

### <a id="y" name="y"></a> y

▸ **y**(`value?`): `any`

Gets or sets the vertical location of the shape.

**`example`**
```
var heart = sheet.shapes.add("Shape1", GC.Spread.Sheets.Shapes.AutoShapeType.heart, 100, 60, 200, 160);
var n = heart.y();
heart.y(n + 50);
```

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `value?` | `string` \| `number` | The vertical location of the shape specified by a number or formula (starts with =) can get a number value. |

#### Returns

`any`

If no value is set, returns the vertical location of the shape.
