如何自动调整行和列的大小
调整电子表格中行和列的大小可以节省大量空间,并使其更具可读性。IronXL# C# 库提供了自动调整行和列大小的功能。由于是在 C# 中完成的,因此可以调用所有现有行和列的大小调整方法,从而将电子表格中的手动任务自动化。
如何自动调整行和列的大小
开始在您的项目中使用IronPDF,并立即获取免费试用。
查看 IronXL 上 Nuget 用于快速安装和部署。它有超过800万次下载,正在使用C#改变Excel。
Install-Package IronXL.Excel
考虑安装 IronXL DLL 直接。下载并手动安装到您的项目或GAC表单中: IronXL.zip
手动安装到你的项目中
下载DLL自动调整行大小示例
自动调整行大小 "方法会自动调整指定行的高度(s) 基于其内容。
: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
方法调整列宽(s) 的内容长度。
: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")
演示
提示
高级自动调整行大小示例
自动调整行大小 "方法的另一个重载将第二个参数设置为布尔值。当设置为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 个像素。