org.apache.poi.hssf.usermodel

## Class HSSFClientAnchor

- java.lang.Object
- - org.apache.poi.hssf.usermodel.HSSFAnchor
  - - org.apache.poi.hssf.usermodel.HSSFClientAnchor

- All Implemented Interfaces:
    ChildAnchor, ClientAnchor

      public final class HSSFClientAnchor
      extends HSSFAnchor
      implements ClientAnchor

  A client anchor is attached to an excel worksheet. It anchors against a top-left and buttom-right cell.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.apache.poi.ss.usermodel.ClientAnchor

      `ClientAnchor.AnchorType`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `MAX_COL`
    `static int` | `MAX_ROW`

    - ### Fields inherited from class org.apache.poi.hssf.usermodel.HSSFAnchor

      `_isHorizontallyFlipped, _isVerticallyFlipped`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `HSSFClientAnchor()` Creates a new client anchor and defaults all the anchor positions to 0.
    `HSSFClientAnchor(EscherClientAnchorRecord escherClientAnchorRecord)`
    `HSSFClientAnchor(int dx1, int dy1, int dx2, int dy2, short col1, int row1, short col2, int row2)` Creates a new client anchor and sets the top-left and bottom-right coordinates of the anchor.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `createEscherAnchor()`
    `boolean` | `equals(java.lang.Object obj)`
    `float` | `getAnchorHeightInPoints(HSSFSheet sheet)` Calculates the height of a client anchor in points.
    `ClientAnchor.AnchorType` | `getAnchorType()` Gets the anchor type Changed from returning an int to an enum in POI 3.14 beta 1.
    `short` | `getCol1()` Returns the column (0 based) of the first cell, or -1 if there is no top-left anchor cell.
    `short` | `getCol2()` Returns the column (0 based) of the second cell, or -1 if there is no bottom-right anchor cell.
    `int` | `getDx1()` Returns the x coordinate within the first cell.
    `int` | `getDx2()` Returns the x coordinate within the second cell Note - XSSF and HSSF have a slightly different coordinate system, values in XSSF are larger by a factor of `Units.EMU_PER_PIXEL`
    `int` | `getDy1()` Returns the y coordinate within the first cell Note - XSSF and HSSF have a slightly different coordinate system, values in XSSF are larger by a factor of `Units.EMU_PER_PIXEL`
    `int` | `getDy2()` Sets the y coordinate within the second cell Note - XSSF and HSSF have a slightly different coordinate system, values in XSSF are larger by a factor of `Units.EMU_PER_PIXEL`
    `protected EscherRecord` | `getEscherAnchor()`
    `int` | `getRow1()` Returns the row (0 based) of the first cell, or -1 if there is no bottom-right anchor cell.
    `int` | `getRow2()` Returns the row (0 based) of the second cell, or -1 if there is no bottom-right anchor cell.
    `int` | `hashCode()`
    `boolean` | `isHorizontallyFlipped()`
    `boolean` | `isVerticallyFlipped()`
    `void` | `setAnchor(short col1, int row1, int x1, int y1, short col2, int row2, int x2, int y2)` Sets the top-left and bottom-right coordinates of the anchor.
    `void` | `setAnchorType(ClientAnchor.AnchorType anchorType)` Sets the anchor type
    `void` | `setCol1(int col1)` Sets the column (0 based) of the first cell.
    `void` | `setCol1(short col1)`
    `void` | `setCol2(int col2)` Returns the column (0 based) of the second cell.
    `void` | `setCol2(short col2)`
    `void` | `setDx1(int dx1)` Sets the x coordinate within the first cell Note - XSSF and HSSF have a slightly different coordinate system, values in XSSF are larger by a factor of `Units.EMU_PER_PIXEL`
    `void` | `setDx2(int dx2)` Sets the x coordinate within the second cell Note - XSSF and HSSF have a slightly different coordinate system, values in XSSF are larger by a factor of `Units.EMU_PER_PIXEL`
    `void` | `setDy1(int dy1)` Sets the y coordinate within the first cell Note - XSSF and HSSF have a slightly different coordinate system, values in XSSF are larger by a factor of `Units.EMU_PER_PIXEL`
    `void` | `setDy2(int dy2)` Sets the y coordinate within the second cell Note - XSSF and HSSF have a slightly different coordinate system, values in XSSF are larger by a factor of `Units.EMU_PER_PIXEL`
    `void` | `setRow1(int row1)` Returns the row (0 based) of the first cell.
    `void` | `setRow2(int row2)` Returns the row (0 based) of the first cell.

    - ### Methods inherited from class org.apache.poi.hssf.usermodel.HSSFAnchor

      `createAnchorFromEscher`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### MAX_COL

          public static final int MAX_COL

    - #### MAX_ROW

          public static final int MAX_ROW

  - ### Constructor Detail

    - #### HSSFClientAnchor

          public HSSFClientAnchor(EscherClientAnchorRecord escherClientAnchorRecord)

    - #### HSSFClientAnchor

          public HSSFClientAnchor()

      Creates a new client anchor and defaults all the anchor positions to 0.

    - #### HSSFClientAnchor

          public HSSFClientAnchor(int dx1,
                                  int dy1,
                                  int dx2,
                                  int dy2,
                                  short col1,
                                  int row1,
                                  short col2,
                                  int row2)

      Creates a new client anchor and sets the top-left and bottom-right coordinates of the anchor. Note: Microsoft Excel seems to sometimes disallow higher y1 than y2 or higher x1 than x2, you might need to reverse them and draw shapes vertically or horizontally flipped!
      Parameters:
        `dx1` - the x coordinate within the first cell.
        `dy1` - the y coordinate within the first cell.
        `dx2` - the x coordinate within the second cell.
        `dy2` - the y coordinate within the second cell.
        `col1` - the column (0 based) of the first cell.
        `row1` - the row (0 based) of the first cell.
        `col2` - the column (0 based) of the second cell.
        `row2` - the row (0 based) of the second cell.

  - ### Method Detail

    - #### getAnchorHeightInPoints

          public float getAnchorHeightInPoints(HSSFSheet sheet)

      Calculates the height of a client anchor in points.
      Parameters:
        `sheet` - the sheet the anchor will be attached to
      Returns:
        the shape height.

    - #### getCol1

          public short getCol1()

      Description copied from interface: `ClientAnchor`
      Returns the column (0 based) of the first cell, or -1 if there is no top-left anchor cell. This is the case for absolute positioning `ClientAnchor.AnchorType.MOVE_AND_RESIZE`
      Specified by:
        `getCol1` in interface `ClientAnchor`
      Returns:
        the column(0 based) of the first cell.

    - #### setCol1

          public void setCol1(short col1)

      Parameters:
        `col1` - the column(0 based) of the first cell.

    - #### setCol1

          public void setCol1(int col1)

      Description copied from interface: `ClientAnchor`
      Sets the column (0 based) of the first cell.
      Specified by:
        `setCol1` in interface `ClientAnchor`
      Parameters:
        `col1` - 0-based column of the first cell.

    - #### getCol2

          public short getCol2()

      Description copied from interface: `ClientAnchor`
      Returns the column (0 based) of the second cell, or -1 if there is no bottom-right anchor cell. This is the case for absolute positioning (`ClientAnchor.AnchorType.DONT_MOVE_AND_RESIZE`) and absolute sizing (`ClientAnchor.AnchorType.MOVE_DONT_RESIZE`.
      Specified by:
        `getCol2` in interface `ClientAnchor`
      Returns:
        the column(0 based) of the first cell.

    - #### setCol2

          public void setCol2(short col2)

      Parameters:
        `col2` - the column(0 based) of the second cell.

    - #### setCol2

          public void setCol2(int col2)

      Description copied from interface: `ClientAnchor`
      Returns the column (0 based) of the second cell.
      Specified by:
        `setCol2` in interface `ClientAnchor`
      Parameters:
        `col2` - the column(0 based) of the second cell.

    - #### getRow1

          public int getRow1()

      Description copied from interface: `ClientAnchor`
      Returns the row (0 based) of the first cell, or -1 if there is no bottom-right anchor cell. This is the case for absolute positioning (`ClientAnchor.AnchorType.DONT_MOVE_AND_RESIZE`).
      Specified by:
        `getRow1` in interface `ClientAnchor`
      Returns:
        the row(0 based) of the first cell.

    - #### setRow1

          public void setRow1(int row1)

      Description copied from interface: `ClientAnchor`
      Returns the row (0 based) of the first cell.
      Specified by:
        `setRow1` in interface `ClientAnchor`
      Parameters:
        `row1` - 0-based row of the first cell.

    - #### getRow2

          public int getRow2()

      Description copied from interface: `ClientAnchor`
      Returns the row (0 based) of the second cell, or -1 if there is no bottom-right anchor cell. This is the case for absolute positioning (`ClientAnchor.AnchorType.DONT_MOVE_AND_RESIZE`) and absolute sizing (`ClientAnchor.AnchorType.MOVE_DONT_RESIZE`.
      Specified by:
        `getRow2` in interface `ClientAnchor`
      Returns:
        the row(0 based) of the second cell.

    - #### setRow2

          public void setRow2(int row2)

      Description copied from interface: `ClientAnchor`
      Returns the row (0 based) of the first cell.
      Specified by:
        `setRow2` in interface `ClientAnchor`
      Parameters:
        `row2` - the row(0 based) of the second cell.

    - #### setAnchor

          public void setAnchor(short col1,
                                int row1,
                                int x1,
                                int y1,
                                short col2,
                                int row2,
                                int x2,
                                int y2)

      Sets the top-left and bottom-right coordinates of the anchor. Note: Microsoft Excel seems to sometimes disallow higher y1 than y2 or higher x1 than x2, you might need to reverse them and draw shapes vertically or horizontally flipped!
      Parameters:
        `x1` - the x coordinate within the first cell.
        `y1` - the y coordinate within the first cell.
        `x2` - the x coordinate within the second cell.
        `y2` - the y coordinate within the second cell.
        `col1` - the column (0 based) of the first cell.
        `row1` - the row (0 based) of the first cell.
        `col2` - the column (0 based) of the second cell.
        `row2` - the row (0 based) of the second cell.

    - #### isHorizontallyFlipped

          public boolean isHorizontallyFlipped()

      Specified by:
        `isHorizontallyFlipped` in class `HSSFAnchor`
      Returns:
        whether this shape is horizontally flipped

    - #### isVerticallyFlipped

          public boolean isVerticallyFlipped()

      Specified by:
        `isVerticallyFlipped` in class `HSSFAnchor`
      Returns:
        whether this shape is vertically flipped

    - #### getEscherAnchor

          protected EscherRecord getEscherAnchor()

      Specified by:
        `getEscherAnchor` in class `HSSFAnchor`

    - #### createEscherAnchor

          protected void createEscherAnchor()

      Specified by:
        `createEscherAnchor` in class `HSSFAnchor`

    - #### getAnchorType

          public ClientAnchor.AnchorType getAnchorType()

      Gets the anchor type Changed from returning an int to an enum in POI 3.14 beta 1.
      Specified by:
        `getAnchorType` in interface `ClientAnchor`
      Returns:
        the anchor type

    - #### setAnchorType

          public void setAnchorType(ClientAnchor.AnchorType anchorType)

      Sets the anchor type
      Specified by:
        `setAnchorType` in interface `ClientAnchor`
      Parameters:
        `anchorType` - the anchor type to set
      Since:
        POI 3.14

    - #### equals

          public boolean equals(java.lang.Object obj)

      Overrides:
        `equals` in class `java.lang.Object`

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `java.lang.Object`

    - #### getDx1

          public int getDx1()

      Description copied from interface: `ClientAnchor`
      Returns the x coordinate within the first cell. Note - XSSF and HSSF have a slightly different coordinate system, values in XSSF are larger by a factor of `Units.EMU_PER_PIXEL`
      Specified by:
        `getDx1` in interface `ChildAnchor`
      Specified by:
        `getDx1` in interface `ClientAnchor`
      Returns:
        the x coordinate within the first cell

    - #### setDx1

          public void setDx1(int dx1)

      Description copied from interface: `ClientAnchor`
      Sets the x coordinate within the first cell Note - XSSF and HSSF have a slightly different coordinate system, values in XSSF are larger by a factor of `Units.EMU_PER_PIXEL`
      Specified by:
        `setDx1` in interface `ChildAnchor`
      Specified by:
        `setDx1` in interface `ClientAnchor`
      Parameters:
        `dx1` - the x coordinate within the first cell

    - #### getDy1

          public int getDy1()

      Description copied from interface: `ClientAnchor`
      Returns the y coordinate within the first cell Note - XSSF and HSSF have a slightly different coordinate system, values in XSSF are larger by a factor of `Units.EMU_PER_PIXEL`
      Specified by:
        `getDy1` in interface `ChildAnchor`
      Specified by:
        `getDy1` in interface `ClientAnchor`
      Returns:
        the y coordinate within the first cell

    - #### setDy1

          public void setDy1(int dy1)

      Description copied from interface: `ClientAnchor`
      Sets the y coordinate within the first cell Note - XSSF and HSSF have a slightly different coordinate system, values in XSSF are larger by a factor of `Units.EMU_PER_PIXEL`
      Specified by:
        `setDy1` in interface `ChildAnchor`
      Specified by:
        `setDy1` in interface `ClientAnchor`
      Parameters:
        `dy1` - the y coordinate within the first cell

    - #### getDy2

          public int getDy2()

      Description copied from interface: `ClientAnchor`
      Sets the y coordinate within the second cell Note - XSSF and HSSF have a slightly different coordinate system, values in XSSF are larger by a factor of `Units.EMU_PER_PIXEL`
      Specified by:
        `getDy2` in interface `ChildAnchor`
      Specified by:
        `getDy2` in interface `ClientAnchor`
      Returns:
        the y coordinate within the second cell

    - #### setDy2

          public void setDy2(int dy2)

      Description copied from interface: `ClientAnchor`
      Sets the y coordinate within the second cell Note - XSSF and HSSF have a slightly different coordinate system, values in XSSF are larger by a factor of `Units.EMU_PER_PIXEL`
      Specified by:
        `setDy2` in interface `ChildAnchor`
      Specified by:
        `setDy2` in interface `ClientAnchor`
      Parameters:
        `dy2` - the y coordinate within the second cell

    - #### getDx2

          public int getDx2()

      Description copied from interface: `ClientAnchor`
      Returns the x coordinate within the second cell Note - XSSF and HSSF have a slightly different coordinate system, values in XSSF are larger by a factor of `Units.EMU_PER_PIXEL`
      Specified by:
        `getDx2` in interface `ChildAnchor`
      Specified by:
        `getDx2` in interface `ClientAnchor`
      Returns:
        the x coordinate within the second cell

    - #### setDx2

          public void setDx2(int dx2)

      Description copied from interface: `ClientAnchor`
      Sets the x coordinate within the second cell Note - XSSF and HSSF have a slightly different coordinate system, values in XSSF are larger by a factor of `Units.EMU_PER_PIXEL`
      Specified by:
        `setDx2` in interface `ChildAnchor`
      Specified by:
        `setDx2` in interface `ClientAnchor`
      Parameters:
        `dx2` - the x coordinate within the second cell

Copyright 2020 The Apache Software Foundation or its licensors, as applicable.