|GetPreferredRowHeight(Int32)||Gets the height in pixels of the tallest cell (based on text contents) in the specified row on this sheet.|
|GetPreferredRowHeight(Int32,Boolean)||Gets the height in pixels of the tallest cell (based on text contents) in the specified row on this sheet.|
|GetPreferredRowHeight(Int32,Boolean,Boolean)||Gets the height in pixels of the tallest cell (based on text contents) in the specified row on this sheet.|
These methods return the optimal height for a row based on the data it contains. It loops through each cell in the row and calls the GetPreferredSize method on the IRenderer interface for the composite StyleInfo.Renderer for the cell in the style model and returns the maximum value.
If you have set up the cells to format the text with multiple lines (GeneralCellType with WordWrap equal to true, or TextCellType with Multiline or WordWrap or both equal to true), then the GetPreferredSize method returns the optimal height to show all of the text in the cell with the current row height. For text cells or header cells with text, be sure that you turn off word wrapping by setting the WordWrap property for that text cell or header cell to false.
If you have very many rows, then you might want to create a custom axis model for SheetView.DocumentModels.RowAxis to return this value. All that should require is creating a class derived from DefaultSheetAxisModel that takes a reference to the SheetView in its constructor and stores it in a field and overrides the GetSize method to call this method for the row index.
In other words, these methods loop through each cell and call GetPreferredSize on each cell's composite style's renderer and returns the maximum height for all cells in the row. Refer to GetPreferredSize to find the more detailed explanation of how that works with multiple-line versus single-line text.
For more information on how a composite style works, refer to ISheetStyleModel.GetCompositeInfo.
For rich text cells (RichTextCellType), if the WordWrap property is set to true, the row height returned by the GetPreferredRowHeight might be larger than what is necessary to display the entire cell if the last character on a wrapped line is on the border. Also, for rich text cells, if the Multiline property is set to true, the row height returned by the GetPreferredRowHeight might be smaller than what is necessary to display the entire cell if there are multiple font sizes and styles on each line.