Drawing & Image

GitHubEdit on GitHub
Packages@univerjs/sheets-drawing
CORE

This class should not be instantiated directly. Use factory methods on univerAPI instead.

Overview

@univerjs/sheets-drawing

MethodDescription
buildAsync-
getIdGet the id of the image
getSourceGet the source of the image
getSourceTypeGet the source type of the image
getTypeGet the drawing type of the image
removeRemove the image from the sheet
setAnchorTypeSet the anchor type of the image, whether the position and size change with the cell
setBackMove the image layer to the bottom layer
setBackwardMove the image layer backward by one level
setColumnSet the horizontal position of the image
setColumnOffsetSet the horizontal offset of the image
setCropSet the cropping region of the image by defining the top, bottom, left, and right edges, thereby displaying the specific part of the image you want
setCropBottomSet the cropping region of the image by defining the bottom edges, thereby displaying the specific part of the image you want
setCropLeftSet the cropping region of the image by defining the left edges, thereby displaying the specific part of the image you want
setCropRightSet the cropping region of the image by defining the right edges, thereby displaying the specific part of the image you want
setCropTopSet the cropping region of the image by defining the top edges, thereby displaying the specific part of the image you want
setForwardMove the image layer forward by one level
setFrontMove the image layer to the top layer
setHeightSet the height of the image
setImageSet the initial image configuration for the image builder
setPositionAsync-
setRotateSet the rotation angle of the image
setRowSet the vertical position of the image
setRowOffsetSet the vertical offset of the image
setSizeAsyncSet the size of the image
setSource-
setSubUnitId-
setUnitId-
setWidthSet the width of the image
toBuilderConvert the image to a FOverGridImageBuilder

APIs

Lifecycle & Creation

buildAsync

Signature

async buildAsync(): Promise<ISheetImage>

Returns

  • Promise<ISheetImage> — See signature above.
Source: @univerjs/sheets-drawing

Getters & Queries

getId

Get the id of the image

Signature

getId(): string

Returns

  • string — The id of the image

Examples

const fWorkbook = univerAPI.getActiveWorkbook();
const fWorksheet = fWorkbook.getActiveSheet();
const images = fWorksheet.getImages();
images.forEach((image) => {
  console.log(image, image.getId());
});
Source: @univerjs/sheets-drawing

getSource

Get the source of the image

Signature

getSource(): string

Returns

  • string — The source of the image

Examples

const fWorkbook = univerAPI.getActiveWorkbook();
const fWorksheet = fWorkbook.getActiveSheet();
const images = fWorksheet.getImages();
images.forEach((image) => {
  console.log(image, image.toBuilder().getSource());
});
Source: @univerjs/sheets-drawing

getSourceType

Get the source type of the image

Signature

getSourceType(): ImageSourceType

Returns

  • ImageSourceType — The source type of the image

Examples

const fWorkbook = univerAPI.getActiveWorkbook();
const fWorksheet = fWorkbook.getActiveSheet();
const images = fWorksheet.getImages();
images.forEach((image) => {
  console.log(image, image.toBuilder().getSourceType());
});
Source: @univerjs/sheets-drawing

getType

Get the drawing type of the image

Signature

getType(): DrawingTypeEnum

Returns

  • DrawingTypeEnum — The drawing type of the image

Examples

const fWorkbook = univerAPI.getActiveWorkbook();
const fWorksheet = fWorkbook.getActiveSheet();
const images = fWorksheet.getImages();
images.forEach((image) => {
  console.log(image, image.getType());
});
Source: @univerjs/sheets-drawing

Setters & Modifiers

setAnchorType

Set the anchor type of the image, whether the position and size change with the cell

Signature

setAnchorType(anchorType: SheetDrawingAnchorType): FOverGridImageBuilder

Parameters

  • anchorType SheetDrawingAnchorTypeNo description

Returns

  • FOverGridImageBuilder — The FOverGridImageBuilder for chaining

Examples

const fWorkbook = univerAPI.getActiveWorkbook();
const fWorksheet = fWorkbook.getActiveSheet();

// image1 position is start from A6 cell, anchor type is Position.
// Only the position of the drawing follows the cell changes. When rows or columns are inserted or deleted, the position of the drawing changes, but the size remains the same.
const image1 = await fWorksheet.newOverGridImage()
  .setSource('https://avatars.githubusercontent.com/u/61444807?s=48&v=4', univerAPI.Enum.ImageSourceType.URL)
  .setColumn(0)
  .setRow(5)
  .setAnchorType(univerAPI.Enum.SheetDrawingAnchorType.Position)
  .buildAsync();

// image2 position is start from C6 cell, anchor type is Both.
// The size and position of the drawing follow the cell changes. When rows or columns are inserted or deleted, the size and position of the drawing change accordingly.
const image2 = await fWorksheet.newOverGridImage()
  .setSource('https://avatars.githubusercontent.com/u/61444807?s=48&v=4', univerAPI.Enum.ImageSourceType.URL)
  .setColumn(2)
  .setRow(5)
  .setAnchorType(univerAPI.Enum.SheetDrawingAnchorType.Both)
  .buildAsync();

// image3 position is start from E6 cell, anchor type is None.
// The size and position of the drawing do not follow the cell changes. When rows or columns are inserted or deleted, the position and size of the drawing remain unchanged.
const image3 = await fWorksheet.newOverGridImage()
  .setSource('https://avatars.githubusercontent.com/u/61444807?s=48&v=4', univerAPI.Enum.ImageSourceType.URL)
  .setColumn(4)
  .setRow(5)
  .setAnchorType(univerAPI.Enum.SheetDrawingAnchorType.None)
  .buildAsync();

// insert images into the sheet
fWorksheet.insertImages([image1, image2, image3]);

// after 2 seconds, set the row height of the 5th row to 100px and insert a row before the 5th row.
// then observe the position and size changes of the images.
setTimeout(() => {
  fWorksheet.setRowHeight(5, 100).insertRowBefore(5);
}, 2000);
Source: @univerjs/sheets-drawing

setBack

Move the image layer to the bottom layer

Signature

setBack(): boolean

Returns

  • boolean — true if the image is moved to the bottom layer successfully, otherwise false

Examples

const fWorkbook = univerAPI.getActiveWorkbook();
const fWorksheet = fWorkbook.getActiveSheet();
const image = fWorksheet.getImages()[0];
const result = image?.setBack();
console.log(result);
Source: @univerjs/sheets-drawing

setBackward

Move the image layer backward by one level

Signature

setBackward(): boolean

Returns

  • boolean — true if the image is moved backward successfully, otherwise false

Examples

const fWorkbook = univerAPI.getActiveWorkbook();
const fWorksheet = fWorkbook.getActiveSheet();
const image = fWorksheet.getImages()[0];
const result = image?.setBackward();
console.log(result);
Source: @univerjs/sheets-drawing

setColumn

Set the horizontal position of the image

Signature

setColumn(column: number): FOverGridImageBuilder

Parameters

  • column numberNo description

Returns

  • FOverGridImageBuilder — The FOverGridImageBuilder for chaining

Examples

// create a new image builder and set image source.
// then build `ISheetImage` and insert it into the sheet, position is start from F6 cell.
const fWorkbook = univerAPI.getActiveWorkbook();
const fWorksheet = fWorkbook.getActiveSheet();
const image = await fWorksheet.newOverGridImage()
  .setSource('https://avatars.githubusercontent.com/u/61444807?s=48&v=4', univerAPI.Enum.ImageSourceType.URL)
  .setColumn(5)
  .setRow(5)
  .buildAsync();
fWorksheet.insertImages([image]);
Source: @univerjs/sheets-drawing

setColumnOffset

Set the horizontal offset of the image

Signature

setColumnOffset(offset: number): FOverGridImageBuilder

Parameters

  • offset numberNo description

Returns

  • FOverGridImageBuilder — The FOverGridImageBuilder for chaining

Examples

// create a new image builder and set image source.
// then build `ISheetImage` and insert it into the sheet, position is start from F6 cell and horizontal offset is 10px.
const fWorkbook = univerAPI.getActiveWorkbook();
const fWorksheet = fWorkbook.getActiveSheet();
const image = await fWorksheet.newOverGridImage()
  .setSource('https://avatars.githubusercontent.com/u/61444807?s=48&v=4', univerAPI.Enum.ImageSourceType.URL)
  .setColumn(5)
  .setRow(5)
  .setColumnOffset(10)
  .buildAsync();
fWorksheet.insertImages([image]);
Source: @univerjs/sheets-drawing

setCrop

Set the cropping region of the image by defining the top, bottom, left, and right edges, thereby displaying the specific part of the image you want.

Signature

setCrop(top?: number, left?: number, bottom?: number, right?: number): boolean

Parameters

  • top number (optional)No description
  • left number (optional)No description
  • bottom number (optional)No description
  • right number (optional)No description

Returns

  • boolean — true if the crop is set successfully, otherwise false

Examples

// set the crop of the image, top 10px, left 10px, bottom 10px, right 10px.
const fWorkbook = univerAPI.getActiveWorkbook();
const fWorksheet = fWorkbook.getActiveSheet();
const image = fWorksheet.getImages()[0];
const result = image?.setCrop(10, 10, 10, 10);
console.log(result);
Source: @univerjs/sheets-drawing

setCropBottom

Set the cropping region of the image by defining the bottom edges, thereby displaying the specific part of the image you want.

Signature

setCropBottom(bottom: number): FOverGridImageBuilder

Parameters

  • bottom numberNo description

Returns

  • FOverGridImageBuilder — The FOverGridImageBuilder for chaining

Examples

// create a new image builder and set image source.
// then build `ISheetImage` and insert it into the sheet, position is start from F6 cell, bottom crop is 10px.
const fWorkbook = univerAPI.getActiveWorkbook();
const fWorksheet = fWorkbook.getActiveSheet();
const image = await fWorksheet.newOverGridImage()
  .setSource('https://avatars.githubusercontent.com/u/61444807?s=48&v=4', univerAPI.Enum.ImageSourceType.URL)
  .setColumn(5)
  .setRow(5)
  .setCropBottom(10)
  .buildAsync();
fWorksheet.insertImages([image]);
Source: @univerjs/sheets-drawing

setCropLeft

Set the cropping region of the image by defining the left edges, thereby displaying the specific part of the image you want.

Signature

setCropLeft(left: number): FOverGridImageBuilder

Parameters

  • left numberNo description

Returns

  • FOverGridImageBuilder — The FOverGridImageBuilder for chaining

Examples

// create a new image builder and set image source.
// then build `ISheetImage` and insert it into the sheet, position is start from F6 cell, left crop is 10px.
const fWorkbook = univerAPI.getActiveWorkbook();
const fWorksheet = fWorkbook.getActiveSheet();
const image = await fWorksheet.newOverGridImage()
  .setSource('https://avatars.githubusercontent.com/u/61444807?s=48&v=4', univerAPI.Enum.ImageSourceType.URL)
  .setColumn(5)
  .setRow(5)
  .setCropLeft(10)
  .buildAsync();
fWorksheet.insertImages([image]);
Source: @univerjs/sheets-drawing

setCropRight

Set the cropping region of the image by defining the right edges, thereby displaying the specific part of the image you want.

Signature

setCropRight(right: number): FOverGridImageBuilder

Parameters

  • right numberNo description

Returns

  • FOverGridImageBuilder — The FOverGridImageBuilder for chaining

Examples

// create a new image builder and set image source.
// then build `ISheetImage` and insert it into the sheet, position is start from F6 cell, right crop is 10px.
const fWorkbook = univerAPI.getActiveWorkbook();
const fWorksheet = fWorkbook.getActiveSheet();
const image = await fWorksheet.newOverGridImage()
  .setSource('https://avatars.githubusercontent.com/u/61444807?s=48&v=4', univerAPI.Enum.ImageSourceType.URL)
  .setColumn(5)
  .setRow(5)
  .setCropRight(10)
  .buildAsync();
fWorksheet.insertImages([image]);
Source: @univerjs/sheets-drawing

setCropTop

Set the cropping region of the image by defining the top edges, thereby displaying the specific part of the image you want.

Signature

setCropTop(top: number): FOverGridImageBuilder

Parameters

  • top numberNo description

Returns

  • FOverGridImageBuilder — The FOverGridImageBuilder for chaining

Examples

// create a new image builder and set image source.
// then build `ISheetImage` and insert it into the sheet, position is start from F6 cell, top crop is 10px.
const fWorkbook = univerAPI.getActiveWorkbook();
const fWorksheet = fWorkbook.getActiveSheet();
const image = await fWorksheet.newOverGridImage()
  .setSource('https://avatars.githubusercontent.com/u/61444807?s=48&v=4', univerAPI.Enum.ImageSourceType.URL)
  .setColumn(5)
  .setRow(5)
  .setCropTop(10)
  .buildAsync();
fWorksheet.insertImages([image]);
Source: @univerjs/sheets-drawing

setForward

Move the image layer forward by one level

Signature

setForward(): boolean

Returns

  • boolean — true if the image is moved forward successfully, otherwise false

Examples

const fWorkbook = univerAPI.getActiveWorkbook();
const fWorksheet = fWorkbook.getActiveSheet();
const image = fWorksheet.getImages()[0];
const result = image?.setForward();
console.log(result);
Source: @univerjs/sheets-drawing

setFront

Move the image layer to the top layer

Signature

setFront(): boolean

Returns

  • boolean — true if the image is moved to the top layer successfully, otherwise false

Examples

const fWorkbook = univerAPI.getActiveWorkbook();
const fWorksheet = fWorkbook.getActiveSheet();
const image = fWorksheet.getImages()[0];
const result = image?.setFront();
console.log(result);
Source: @univerjs/sheets-drawing

setHeight

Set the height of the image

Signature

setHeight(height: number): FOverGridImageBuilder

Parameters

  • height numberNo description

Returns

  • FOverGridImageBuilder — The FOverGridImageBuilder for chaining

Examples

// create a new image builder and set image source.
// then build `ISheetImage` and insert it into the sheet, position is start from F6 cell, width is 120px and height is 50px.
const fWorkbook = univerAPI.getActiveWorkbook();
const fWorksheet = fWorkbook.getActiveSheet();
const image = await fWorksheet.newOverGridImage()
  .setSource('https://avatars.githubusercontent.com/u/61444807?s=48&v=4', univerAPI.Enum.ImageSourceType.URL)
  .setColumn(5)
  .setRow(5)
  .setWidth(120)
  .setHeight(50)
  .buildAsync();
fWorksheet.insertImages([image]);
Source: @univerjs/sheets-drawing

setImage

Set the initial image configuration for the image builder.

Signature

setImage(image: ISheetImage): FOverGridImageBuilder

Parameters

  • image ISheetImageNo description

Returns

  • FOverGridImageBuilder — The FOverGridImageBuilder for chaining

Examples

// create a new image builder and set initial image configuration.
// then build `ISheetImage` and insert it into the sheet, position is start from F6 cell.
const fWorkbook = univerAPI.getActiveWorkbook();
const fWorksheet = fWorkbook.getActiveSheet();
const image = await fWorksheet.newOverGridImage()
  .setImage({
    drawingId: '123456',
    drawingType: univerAPI.Enum.DrawingType.DRAWING_IMAGE,
    imageSourceType: univerAPI.Enum.ImageSourceType.BASE64,
    source: 'https://avatars.githubusercontent.com/u/61444807?s=48&v=4',
    unitId: fWorkbook.getId(),
    subUnitId: fWorksheet.getSheetId(),
  })
  .setColumn(5)
  .setRow(5)
  .buildAsync();
fWorksheet.insertImages([image]);
Source: @univerjs/sheets-drawing

setPositionAsync

Signature

async setPositionAsync(row: number, column: number, rowOffset?: number, columnOffset?: number): Promise<boolean>

Parameters

  • row numberNo description
  • column numberNo description
  • rowOffset number (optional)No description
  • columnOffset number (optional)No description

Returns

  • Promise<boolean> — See signature above.
Source: @univerjs/sheets-drawing

setRotate

Set the rotation angle of the image

Signature

setRotate(angle: number): boolean

Parameters

  • angle numberNo description

Returns

  • boolean — true if the rotation is set successfully, otherwise false

Examples

// set 90 degrees rotation of the image
const fWorkbook = univerAPI.getActiveWorkbook();
const fWorksheet = fWorkbook.getActiveSheet();
const image = fWorksheet.getImages()[0];
const result = image?.setRotate(90);
console.log(result);
Source: @univerjs/sheets-drawing

setRow

Set the vertical position of the image

Signature

setRow(row: number): FOverGridImageBuilder

Parameters

  • row numberNo description

Returns

  • FOverGridImageBuilder — The FOverGridImageBuilder for chaining

Examples

// create a new image builder and set image source.
// then build `ISheetImage` and insert it into the sheet, position is start from F6 cell.
const fWorkbook = univerAPI.getActiveWorkbook();
const fWorksheet = fWorkbook.getActiveSheet();
const image = await fWorksheet.newOverGridImage()
  .setSource('https://avatars.githubusercontent.com/u/61444807?s=48&v=4', univerAPI.Enum.ImageSourceType.URL)
  .setColumn(5)
  .setRow(5)
  .buildAsync();
fWorksheet.insertImages([image]);
Source: @univerjs/sheets-drawing

setRowOffset

Set the vertical offset of the image

Signature

setRowOffset(offset: number): FOverGridImageBuilder

Parameters

  • offset numberNo description

Returns

  • FOverGridImageBuilder — The FOverGridImageBuilder for chaining

Examples

// create a new image builder and set image source.
// then build `ISheetImage` and insert it into the sheet, position is start from F6 cell and vertical offset is 10px.
const fWorkbook = univerAPI.getActiveWorkbook();
const fWorksheet = fWorkbook.getActiveSheet();
const image = await fWorksheet.newOverGridImage()
  .setSource('https://avatars.githubusercontent.com/u/61444807?s=48&v=4', univerAPI.Enum.ImageSourceType.URL)
  .setColumn(5)
  .setRow(5)
  .setRowOffset(10)
  .buildAsync();
fWorksheet.insertImages([image]);
Source: @univerjs/sheets-drawing

setSizeAsync

Set the size of the image

Signature

async setSizeAsync(width: number, height: number): Promise<boolean>

Parameters

  • width numberNo description
  • height numberNo description

Returns

  • Promise<boolean> — true if the size is set successfully, otherwise false

Examples

// set the image width 120px and height 50px
const fWorkbook = univerAPI.getActiveWorkbook();
const fWorksheet = fWorkbook.getActiveSheet();
const image = fWorksheet.getImages()[0];
const result = image?.setSizeAsync(120, 50);
console.log(result);
Source: @univerjs/sheets-drawing

setSource

Signature

setSource(source: string, sourceType?: ImageSourceType): boolean

Parameters

  • source stringNo description
  • sourceType ImageSourceType (optional)No description

Returns

  • boolean — See signature above.
Source: @univerjs/sheets-drawing

setSubUnitId

Signature

setSubUnitId(subUnitId: string): FOverGridImageBuilder

Parameters

  • subUnitId stringNo description

Returns

  • FOverGridImageBuilder — See signature above.
Source: @univerjs/sheets-drawing

setUnitId

Signature

setUnitId(unitId: string): FOverGridImageBuilder

Parameters

  • unitId stringNo description

Returns

  • FOverGridImageBuilder — See signature above.
Source: @univerjs/sheets-drawing

setWidth

Set the width of the image

Signature

setWidth(width: number): FOverGridImageBuilder

Parameters

  • width numberNo description

Returns

  • FOverGridImageBuilder — The FOverGridImageBuilder for chaining

Examples

// create a new image builder and set image source.
// then build `ISheetImage` and insert it into the sheet, position is start from F6 cell, width is 120px and height is 50px.
const fWorkbook = univerAPI.getActiveWorkbook();
const fWorksheet = fWorkbook.getActiveSheet();
const image = await fWorksheet.newOverGridImage()
  .setSource('https://avatars.githubusercontent.com/u/61444807?s=48&v=4', univerAPI.Enum.ImageSourceType.URL)
  .setColumn(5)
  .setRow(5)
  .setWidth(120)
  .setHeight(50)
  .buildAsync();
fWorksheet.insertImages([image]);
Source: @univerjs/sheets-drawing

Actions & Operations

remove

Remove the image from the sheet

Signature

remove(): boolean

Returns

  • boolean — true if the image is removed successfully, otherwise false

Examples

const fWorkbook = univerAPI.getActiveWorkbook();
const fWorksheet = fWorkbook.getActiveSheet();
const image = fWorksheet.getImages()[0];
const result = image?.remove();
console.log(result);
Source: @univerjs/sheets-drawing

Miscellaneous

toBuilder

Convert the image to a FOverGridImageBuilder

Signature

toBuilder(): FOverGridImageBuilder

Returns

  • FOverGridImageBuilder — The builder FOverGridImageBuilder

Examples

const fWorkbook = univerAPI.getActiveWorkbook();
const fWorksheet = fWorkbook.getActiveSheet();
const images = fWorksheet.getImages();
images.forEach((image) => {
  console.log(image, image.toBuilder().getSource());
});
Source: @univerjs/sheets-drawing