调整行和列的大小
工作表在RadSpreadProcessing的文档模型由按行和列组织的单元格组成。该模型的API允许您设置每列的宽度和每行的高度。此外,您可以选择使用自动适配功能,根据当前内容调整行和列的大小。本文演示了更改行高和列宽的不同选项。
行高
通过类型的实例检索和更改行高度RowHeight。该类公开了两个属性:价值,它保存行高度,以及IsCustom它指示高度是否由用户设置。如果IsCustom属性设置为false时,行高在某些情况下会自动更改,例如,当您增加包含数值的单元格的字体大小时,其内容不再适合可用的大小。但是,如果增大字体大小和IsCustom属性设置为true时,行高将不会改变,单元格内容的一部分将保持隐藏。
为了更改行高度,您需要创建一个RowSelection实例,该实例包含要调整大小的行。的RowSelection类暴露获得(),SetHeight ()和ClearHeight ()方法,用于操作所选行的高度。
的获得()方法返回RangePropertyValue
IsIndeterminate:表示是否为RowHeight的所有行之间是一致的RowSelection。如果RowHeight对所有行都有相同的值,IsIndeterminate设置为false。但是,如果的值RowHeight中的各个行不同RowSelection,IsIndeterminate属性设置为true,则价值的性质RangePropertyValue
类返回默认的RowHeight。 价值:保存实际的RowHeight。如果IsIndeterminate属性设置为false,价值包含了RowHeight总的来说RowSelection地区。如果IsIndeterminate属性设置为true,则表示RowHeight是不是所有行都是一样的RowSelection和价值属性设置为其默认值。
的SetHeight ()方法用于更改行高度。它接受一个类型的参数RowHeight它指定了新的高度。的ClearHeight ()方法重置RowHeight将所选行设置为默认高度。请注意,可以通过控件操纵默认行高GetDefaultHeight ()和SetDefaultHeight ()方法公开的行类。
示例1显示如何检索和更改若干行的高度。
示例1:更改行高度
Workbook = new Workbook();Worksheet = workbook.Worksheets.Add();RowSelection =工作表。行(5、7);double rowsHeight = rowSelection.GetHeight().Value.Value;rowSelection。SetHeight(new RowHeight(rowsHeight + 50, true));
自动匹配行高
自动适配功能提供了一种方便的方法来调整多行大小,以便每行选择适合其内容的高度。要自动调整行高度,您需要创建一个RowSelection实例,该实例包含需要调整大小的行,并调用AutoFitHeight ()方法RowSelection对象。示例2说明如何拟合索引为6、7和8的行高度。
例2:行的拟合高度
Workbook = new Workbook();Worksheet = workbook.Worksheets.Add();RowSelection =工作表。行(5、7);rowSelection.AutoFitHeight ();
方法调用时的预期行为AutoFitHeight方法设置包含合并和包装单元格的行上的默认值RowHeight值,而不是根据其内容计算行高。为了测量细胞的含量,可以检查曝光的胶片LayoutHelper类方法。
列的宽度
通过类型的实例检索和更改列的宽度ColumnWidth。该类公开了两个属性:价值,它保存列的宽度,以及IsCustom指示宽度是否由用户设置。如果IsCustom属性设置为false时,列宽度在某些情况下会自动更改,例如,当您增加包含数值的单元格的字体大小并且其内容不再适合可用大小时。但是,如果增大字体大小和IsCustom属性设置为true时,列宽度不会改变,单元格的部分内容将保持隐藏。
为了更改列的宽度,您需要创建一个ColumnSelection实例,该实例包含要调整大小的列。的ColumnSelection类暴露GetWidth (),SetWidth ()和ClearWidth ()方法,用于操作所选列的宽度。
的GetWidth ()方法返回RangePropertyValue
IsIndeterminate:表示是否为ColumnWidth的所有列之间是一致的ColumnSelection。如果ColumnWidth对所有列都有相同的值,IsIndeterminate设置为false。但是,如果的值ColumnWidth中的各个列各不相同ColumnSelection,IsIndeterminate属性设置为true,则价值的性质RangePropertyValue
类设置为其默认值。 价值:保存实际的ColumnWidth。如果IsIndeterminate属性设置为false,价值包含了ColumnWidth总的来说ColumnSelection地区。如果IsIndeterminate属性设置为true,则表示ColumnWidth是不是所有的列都是一样的ColumnSelection和价值属性设置为其默认值。
的SetWidth ()方法用于更改列的宽度。它接受一个类型的参数ColumnWidth它指定了新的宽度。的ClearWidth ()方法重置ColumnWidth将所选列设置为默认宽度。控件来操作默认列宽度GetDefaultWidth ()和SetDefaultWidth ()方法公开的列类。
示例3显示如何检索和更改若干列的宽度。
示例3:更改列的宽度
Workbook = new Workbook();Worksheet = workbook.Worksheets.Add();ColumnSelection ColumnSelection =工作表。列(5、7);double columnWidth = columnSelection.GetWidth().Value.Value;columnSelection。SetWidth(new ColumnWidth(columnWidth + 50, true));
自动调整列宽
自动适配功能提供了一种方便的方法来调整多个列的大小,以便每个列选择适合其内容的宽度。要自动拟合列,需要创建ColumnSelection实例,该实例保存要调整大小的列,并调用其AutoFitWidth ()方法。示例4显示了如何将列F到H的列宽度拟合。
例4:列的拟合宽度
Workbook = new Workbook();Worksheet = workbook.Worksheets.Add();ColumnSelection ColumnSelection =工作表。列(5、7);columnSelection.AutoFitWidth ();
自动拟合列宽度的另一种方法是使用ExpandToFitNumberValuesWidth ()方法。它影响仅包含数值并具有ColumnWidth与IsCustom属性设置为true。示例5演示适合列宽度的另一种方法。
示例5:Fit with ExpandToFitNumberValuesWidth()
Workbook = new Workbook();Worksheet = workbook.Worksheets.Add();ColumnSelection ColumnSelection =工作表。列(5、7);columnSelection.ExpandToFitNumberValuesWidth ();
计量单位
在RadSpreadProcessing中用于设置列的宽度和行的高度的单位类型是与设备无关的像素(下降)。
UnitHelper类
的UnitHelper类提供了一堆从dip转换到其他测量单位的方法,反之亦然(例如点,picas,厘米,英寸等)。
从Dip转换为单位:
- DipToPoint:将倾角转换为点。
- DipToPointI:将倾角转换为点。
- DipToPica:将dip转换为picas。
- DipToCm:将倾角转换为厘米。
- DipToMm:将倾角转换为毫米。
- DipToInch:将倾角转换为英寸。
- DipToTwip:将dip转换为twtip。
- DipToEmu:将dip转换为emu。
- DipToTwipI:将dip转换为twtip。
- DipToTwipF:将dip转换为twtip。
- DipToUnit:将dip转换为单位。
从单位转换为Dip:
- PointToDip:将点转换为点。
- PicaToDip:转换为点倾角。
- EmuToDip:将emu转换为dip。
- CmToDip:将厘米转换为刻度。
- MmToDip:将毫米转换为刻度。
- InchToDip:将英寸转换为倾角。
- TwipToDip:将提示转换为提示。
- TwipToDipF:将提示转换为提示。
- TwipToDipI:将提示转换为提示。
- UnitToDip:将单位转换为倾角。
大多数方法都遵循相同的单位转换模式:
示例5说明如何从DIP转换为Point并设置行高。
例5:从DIP转换到Point
double points = unithelper . diptoppoint (80);RowHeight newRowHeight = newRowHeight (points, isCustom: true);worksheet.Rows [0] .SetHeight (newRowHeight);
例子6说明如何从Point转换为DIP并设置行高。
例6:从Point转换为DIP
双重衰退=经济衰退。UnitToDip(60, UnitType.Point); RowHeight newRowHeight = new RowHeight(dips, isCustom: true); worksheet.Rows[0].SetHeight(newRowHeight);
Telerik RadSpreadProcessing vs MS Excel
另一方面,MS Excel使用其自有测量装置,因此,为了在像素和MS Excel宽度之间进行转换,您可以使用UnitHelper类的以下方法与SetWidth()方法:
- PixelWidthToExcelColumnWidth:以像素为单位将列宽度转换为MS Excel列宽度。
例7演示如何转换和设置从像素到MS Excel列宽度。
例7:从像素列宽度转换为MS Excel列宽度
double pixelWidthToExcelWidth = UnitHelper。PixelWidthToExcelColumnWidth(工作簿,57);newColumnWidth = newColumnWidth (pixelWidthToExcelWidth, isCustom: true);worksheet.Columns [0] .SetWidth (newColumnWidth);
- ExcelColumnWidthToPixelWidth:将MS Excel列宽度转换为像素宽度。
示例8演示如何从MS Excel转换和设置为像素列宽度。
例8:从MS Excel列宽度转换为像素列宽度
double excelWidthToPixelWidth = UnitHelper。ExcelColumnWidthToPixelWidth(工作簿,8.11);newColumnWidth = newColumnWidth (excelWidthToPixelWidth, isCustom: true);worksheet.Columns [0] .SetWidth (newColumnWidth);
LayoutHelper类
的LayoutHelper类公开了以下方法来帮助计算页面内容的大小:
- CalculateCellContentSize:计算单元格内容的大小。
示例9:获取单元格内容的大小
大小cellContentSize = LayoutHelper。CalculateCellContentSize(worksheet, rowIndex, columnIndex);
- CalculateCellLayoutBox:创建、排列并返回单元格布局框。
示例10:获取单元格布局框
CellLayoutBox = LayoutHelper。CalculateCellLayoutBox(worksheet, rowIndex, columnIndex);