如何自动调整行和列的大小
在电子表格中调整行和列的大小可以节省大量空间,并使内容更加易读。 IronXL C# 库提供自动调整行和列大小的功能。 由于它是用C#编写的,可以为所有现有行和列调用调整大小方法,自动执行电子表格中的手动任务。
如何自动调整行和列的大小
开始使用IronXL
立即在您的项目中开始使用IronXL,并享受免费试用。
自动调整行大小示例
AutoSizeRow
方法根据指定行的内容自动调整其高度。
:path=/static-assets/excel/content-code-examples/how-to/autosize-rows-columns-rows.cs
using IronXL;
// Load existing spreadsheet
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
// Apply auto resize on row 2
workSheet.AutoSizeRow(1);
workBook.SaveAs("autoResize.xlsx");
Imports IronXL
' Load existing spreadsheet
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet
' Apply auto resize on row 2
workSheet.AutoSizeRow(1)
workBook.SaveAs("autoResize.xlsx")
演示

自动调整列宽示例
使用AutoSizeColumn
方法根据内容长度调整列的宽度。
:path=/static-assets/excel/content-code-examples/how-to/autosize-rows-columns-columns.cs
using IronXL;
// Load existing spreadsheet
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
// Apply auto resize on column A
workSheet.AutoSizeColumn(0);
workBook.SaveAs("autoResizeColumn.xlsx");
Imports IronXL
' Load existing spreadsheet
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet
' Apply auto resize on column A
workSheet.AutoSizeColumn(0)
workBook.SaveAs("autoResizeColumn.xlsx")
演示

提示
高级自动调整行大小示例
AutoSizeRow
方法的另一个重载接受一个作为第二参数的 Boolean 值。 当设置为true时,合并单元格的高度将通过获取合并区域中左上角单元格的高度值,并将其除以合并区域中的行数来考虑。 当合并单元格的内容相对于合并区域中其余行具有最高高度时,适用此条件。
:path=/static-assets/excel/content-code-examples/how-to/autosize-rows-columns-advance-rows.cs
using IronXL;
// Load existing spreadsheet
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
// Apply auto resize to rows individually
workSheet.AutoSizeRow(0, true);
workSheet.AutoSizeRow(1, true);
workSheet.AutoSizeRow(2, true);
workBook.SaveAs("advanceAutoResizeRow.xlsx");
Imports IronXL
' Load existing spreadsheet
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet
' Apply auto resize to rows individually
workSheet.AutoSizeRow(0, True)
workSheet.AutoSizeRow(1, True)
workSheet.AutoSizeRow(2, True)
workBook.SaveAs("advanceAutoResizeRow.xlsx")
示例
例如,假设内容的高度为192 像素,并位于一个跨越3 行的合并区域中。 当将自动调整大小应用于这些行中的任何一行时,算法将内容的高度192 px除以3,从而使每行的高度为64 px。 请记住,AutoSizeRow
方法需要单独应用于每一行。
如果值设置为false呢?
当值设置为 false 时,AutoSizeRow
方法将根据最高的单元格内容调整行高。 在Microsoft Excel中,当合并一组单元格时,它仅保留左上角单元格的值,并清除其余的。然而,使用IronXL,合并操作在合并区域不删除其他单元格的值。
:path=/static-assets/excel/content-code-examples/how-to/autosize-rows-columns-advance-rows-false.cs
using IronXL;
workSheet.Merge("A1:A3");
workSheet.AutoSizeRow(0, false);
workSheet.AutoSizeRow(1, false);
workSheet.AutoSizeRow(2, false);
Imports IronXL
workSheet.Merge("A1:A3")
workSheet.AutoSizeRow(0, False)
workSheet.AutoSizeRow(1, False)
workSheet.AutoSizeRow(2, False)

为了演示,我手动调整了行高,而不是使用 Excel自动调整行高功能。 为了避免增加明显的顶部和底部填充,进行了这样的处理。
将useMergedCells参数设置为false时,不会考虑合并单元格的高度。 因此,高度没有变化,每一行的高度仅根据其内容来计算。
高级自动调整列宽示例
与AutoSizeRow
类似,您还可以在调整列大小时考虑合并单元格的宽度。 当设置为true时,将考虑合并单元格的宽度。 如果合并单元格具有最长内容,则调整大小后的列宽将是合并单元格的宽度除以合并区域中的列数。
:path=/static-assets/excel/content-code-examples/how-to/autosize-rows-columns-advance-columns.cs
using IronXL;
// Load existing spreadsheet
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
// Apply auto resize to columns individually
workSheet.AutoSizeColumn(0, true);
workSheet.AutoSizeColumn(1, true);
workSheet.AutoSizeColumn(2, true);
workBook.SaveAs("advanceAutoResizeColumn.xlsx");
Imports IronXL
' Load existing spreadsheet
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet
' Apply auto resize to columns individually
workSheet.AutoSizeColumn(0, True)
workSheet.AutoSizeColumn(1, True)
workSheet.AutoSizeColumn(2, True)
workBook.SaveAs("advanceAutoResizeColumn.xlsx")
示例
例如,如果内容的宽度为117像素,并且位于跨越2列的合并区域中,对其中任何一列应用自动调整大小将导致每列的宽度为59像素。 每个列都需要单独应用AutoSizeColumn
方法。
如果值设置为false呢?
当值设置为false时,AutoSizeColumn
方法会根据内容宽度最长的单元格调整宽度。 在 Microsoft Excel 中,当合并单元格的区域时,仅保留左上角的值并擦除其余部分。然而,IronXL 的合并方法不会擦除合并区域中其他单元格的值。
:path=/static-assets/excel/content-code-examples/how-to/autosize-rows-columns-advance-columns-false.cs
workSheet.Merge("A1:B1");
workSheet.AutoSizeColumn(0, false);
workSheet.AutoSizeColumn(1, false);
workSheet.Merge("A1:B1")
workSheet.AutoSizeColumn(0, False)
workSheet.AutoSizeColumn(1, False)

合并单元格的宽度没有被优先考虑,导致宽度没有变化,因为每一列的宽度都是根据其内容宽度计算的。
Excel 与 IronXL 自动调整大小的区别
行
Excel自动调整行高功能会在单元格的顶部和底部添加明显的内边距。

列
Excel自动调整列宽功能还会对单元格应用左右填充,但这种填充不太明显。

手动调整高度和宽度的示例
除了依赖AutoSizeRow
和AutoSizeColumn
方法计算和调整内容的宽度和高度之外,您还可以灵活地手动调整列和行的宽度和高度,以满足您的具体需求。 这使您可以将它们设置为符合您需求的特定值。
- 调整高度:设置RangeRow的Height属性。
- 调整宽度:设置RangeColumn的Width属性。
:path=/static-assets/excel/content-code-examples/how-to/autosize-rows-columns-manual.cs
using IronXL;
// Load existing spreadsheet
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
RangeRow row = workSheet.GetRow(0);
row.Height = 10; // Set height
RangeColumn col = workSheet.GetColumn(0);
col.Width = 10; // Set width
workBook.SaveAs("manualHeightAndWidth.xlsx");
IRON VB CONVERTER ERROR developers@ironsoftware.com
在Excel中的高度和宽度单位
Excel 中高度和宽度的测量单位彼此不同。 具体来说,高度以点的1/20为单位测量,而宽度则根据“正常”样式中指定的字体,看能在一个单元格中放下多少个“0”来确定。
为了简化单位转换,让我们在 IronXL 中设置值,该值对应于 Microsoft Excel 中的显示像素。 请注意,像素并不代表屏幕上的一个物理点; 相反,它被定义为1/96英寸,而不管屏幕的实际分辨率如何。 Excel本身被设计为与分辨率无关,不依赖于物理像素。
要建立IronXL与Excel的高度和宽度测量之间的关系,您可以考虑以下近似值:
- 高度:RangeRow.Height = 10 将导致大约 1 像素 的高度。
- 宽度:RangeColumn.Width = 23.255 将对应于 1 像素。