public class SheetUtil
extends java.lang.Object
Constructor and Description |
---|
SheetUtil() |
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 double |
getCellWidth(Cell cell,
int defaultCharWidth,
DataFormatter formatter,
boolean useMergedCells,
java.util.List<CellRangeAddress> mergedRegions)
Compute width of a single cell
This method receives the list of merged regions as querying it from the cell/sheet
is time-consuming and thus caching the list across cells speeds up certain operations
considerably.
|
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
|
public static double getCellWidth(Cell cell, int defaultCharWidth, DataFormatter formatter, boolean useMergedCells)
cell
- the cell whose width is to be calculateddefaultCharWidth
- the width of a single characterformatter
- formatter used to prepare the text to be measureduseMergedCells
- whether to use merged cellspublic static double getCellWidth(Cell cell, int defaultCharWidth, DataFormatter formatter, boolean useMergedCells, java.util.List<CellRangeAddress> mergedRegions)
cell
- the cell whose width is to be calculateddefaultCharWidth
- the width of a single characterformatter
- formatter used to prepare the text to be measureduseMergedCells
- whether to use merged cellsmergedRegions
- The list of merged regions as received via cell.getSheet().getMergedRegions()public static double getColumnWidth(Sheet sheet, int column, boolean useMergedCells)
sheet
- the sheet to calculatecolumn
- 0-based index of the columnuseMergedCells
- whether to use merged cellspublic static double getColumnWidth(Sheet sheet, int column, boolean useMergedCells, int firstRow, int lastRow)
sheet
- the sheet to calculatecolumn
- 0-based index of the columnuseMergedCells
- whether to use merged cellsfirstRow
- 0-based index of the first row to consider (inclusive)lastRow
- 0-based index of the last row to consider (inclusive)@Internal public static int getDefaultCharWidth(Workbook wb)
wb
- the workbook to get the default character width frompublic static boolean canComputeColumnWidth(Font font)
font
- The Font that is used in the Cellpublic static Cell getCell(Sheet sheet, int rowIx, int colIx)
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.
sheet
- The workbook sheet to look at.rowIx
- The 0-based index of the row.colIx
- The 0-based index of the cell.java.lang.NullPointerException
- if sheet is nullpublic static Cell getCellWithMerges(Sheet sheet, int rowIx, int colIx)
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.
sheet
- The workbook sheet to look at.rowIx
- The 0-based index of the row.colIx
- The 0-based index of the cell.java.lang.NullPointerException
- if sheet is nullCopyright 2021 The Apache Software Foundation or its licensors, as applicable.