org.apache.poi.ss.util

## Class SheetUtil

- java.lang.Object
- - org.apache.poi.ss.util.SheetUtil

-     public class SheetUtil
      extends java.lang.Object

  Helper methods for when working with Usermodel sheets
  Author:
    Yegor Kozlov

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `SheetUtil()`

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static boolean` | `canComputeColumnWidth(Font font)` Check if the Fonts are installed correctly so that Java can compute the size of columns.
    `static Cell` | `getCell(Sheet sheet, int rowIx, int colIx)` Return the cell, without taking account of merged regions.
    `static double` | `getCellWidth(Cell cell, int defaultCharWidth, DataFormatter formatter, boolean useMergedCells)` Compute width of a single cell
    `static Cell` | `getCellWithMerges(Sheet sheet, int rowIx, int colIx)` Return the cell, taking account of merged regions.
    `static double` | `getColumnWidth(Sheet sheet, int column, boolean useMergedCells)` Compute width of a column and return the result
    `static double` | `getColumnWidth(Sheet sheet, int column, boolean useMergedCells, int firstRow, int lastRow)` Compute width of a column based on a subset of the rows and return the result
    `static int` | `getDefaultCharWidth(Workbook wb)` Get default character width using the Workbook's default font

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

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

- - ### Constructor Detail

    - #### SheetUtil

          public SheetUtil()

  - ### Method Detail

    - #### getCellWidth

          public static double getCellWidth(Cell cell,
                                            int defaultCharWidth,
                                            DataFormatter formatter,
                                            boolean useMergedCells)

      Compute width of a single cell
      Parameters:
        `cell` - the cell whose width is to be calculated
        `defaultCharWidth` - the width of a single character
        `formatter` - formatter used to prepare the text to be measured
        `useMergedCells` - whether to use merged cells
      Returns:
        the width in pixels or -1 if cell is empty

    - #### getColumnWidth

          public static double getColumnWidth(Sheet sheet,
                                              int column,
                                              boolean useMergedCells)

      Compute width of a column and return the result
      Parameters:
        `sheet` - the sheet to calculate
        `column` - 0-based index of the column
        `useMergedCells` - whether to use merged cells
      Returns:
        the width in pixels or -1 if all cells are empty

    - #### getColumnWidth

          public static double getColumnWidth(Sheet sheet,
                                              int column,
                                              boolean useMergedCells,
                                              int firstRow,
                                              int lastRow)

      Compute width of a column based on a subset of the rows and return the result
      Parameters:
        `sheet` - the sheet to calculate
        `column` - 0-based index of the column
        `useMergedCells` - whether to use merged cells
        `firstRow` - 0-based index of the first row to consider (inclusive)
        `lastRow` - 0-based index of the last row to consider (inclusive)
      Returns:
        the width in pixels or -1 if cell is empty

    - #### getDefaultCharWidth

          @Internal
          public static int getDefaultCharWidth(Workbook wb)

      Get default character width using the Workbook's default font
      Parameters:
        `wb` - the workbook to get the default character width from
      Returns:
        default character width in pixels

    - #### canComputeColumnWidth

          public static boolean canComputeColumnWidth(Font font)

      Check if the Fonts are installed correctly so that Java can compute the size of columns. If a Cell uses a Font which is not available on the operating system then Java may fail to return useful Font metrics and thus lead to an auto-computed size of 0. This method allows to check if computing the sizes for a given Font will succeed or not.
      Parameters:
        `font` - The Font that is used in the Cell
      Returns:
        true if computing the size for this Font will succeed, false otherwise

    - #### getCell

          public static Cell getCell(Sheet sheet,
                                     int rowIx,
                                     int colIx)

      Return the cell, without taking account of merged regions.

      Use `getCellWithMerges(Sheet, int, int)` if you want the top left cell from merged regions instead when the reference is a merged cell.

      Use this where you want to know if the given cell is explicitly defined or not.

      Parameters:
        `sheet` - The workbook sheet to look at.
        `rowIx` - The 0-based index of the row.
        `colIx` - The 0-based index of the cell.
      Returns:
        cell at the given location, or null if not defined
      Throws:
        `java.lang.NullPointerException` - if sheet is null

    - #### getCellWithMerges

          public static Cell getCellWithMerges(Sheet sheet,
                                               int rowIx,
                                               int colIx)

      Return the cell, taking account of merged regions. Allows you to find the cell who's contents are shown in a given position in the sheet.

      If the cell at the given co-ordinates is a merged cell, this will return the primary (top-left) most cell of the merged region.

      If the cell at the given co-ordinates is not in a merged region, then will return the cell itself.

      If there is no cell defined at the given co-ordinates, will return null.

      Parameters:
        `sheet` - The workbook sheet to look at.
        `rowIx` - The 0-based index of the row.
        `colIx` - The 0-based index of the cell.
      Returns:
        cell at the given location, its base merged cell, or null if not defined
      Throws:
        `java.lang.NullPointerException` - if sheet is null

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