IronXL How-Tos Autosize Rows and Columns How to Auto Resize Rows and Columns Chaknith Bin Updated:July 28, 2025 Resizing rows and columns in a spreadsheet can save a lot of space and make it more readable. The IronXL C# library provides the functionality to automatically resize rows and columns. Since it is done in C#, the resize methods can be called for all the existing rows and columns, automating the manual task in the spreadsheet. How to Auto Resize Rows and Columns Download the C# library to auto resize rows and columns in Excel Import the desired Excel file Utilize the AutoSizeRow method to automatically resize rows Use the AutoSizeColumn method to resize columns based on their content width Set the height and width values to your requirements Get started with IronXL Start using IronXL in your project today with a free trial. First Step: Start for Free The AutoSizeRow method automatically resizes the height of a specified row(s) based on its content. :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") $vbLabelText $csharpLabel Demonstration Auto Resize Columns Example Use the AutoSizeColumn method to resize the width of column(s) based on its content length. :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") $vbLabelText $csharpLabel Demonstration TipsAll row and column index positions follow zero-based indexing. Advanced Auto Resize Rows Example Another overload of the AutoSizeRow method takes a second parameter as a Boolean value. This parameter lets you consider the merged cells when resizing. :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") $vbLabelText $csharpLabel Example For instance, suppose the content has a height of 192 pixels and is located in a merged region that spans 3 rows. When applying auto resize to any of these rows, the algorithm divides the content's height of 192 px by 3, resulting in a height of 64 px for each row. Remember that the AutoSizeRow method needs to be applied to each row individually. What if the value is set to false? When the value is set to false, the AutoSizeRow method will adjust the row height based on the content of the cell with the highest height. In Microsoft Excel, when a range of cells is merged, it retains only the value of the upper-left cell and clears the rest. However, with IronXL, the Merge operation is performed without erasing the values of other cells in the merged region. :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) $vbLabelText $csharpLabel For demonstration purposes, I manually adjusted the row height instead of using the Excel autofit row height function. This was done to avoid adding noticeable top and bottom padding. With the useMergedCells parameter set to false, the height of merged cells is not being taken into consideration. As a result, there are no changes in height, and each row's height is calculated solely based on its content. Advanced Auto Resize Columns Example Similar to AutoSizeRow, you can also make the resizing of columns consider the width of merged cells. When set to true, the width of merged cells will be taken into account. If the merged cell has the longest content, the width of the resized column will be the merged cell's width divided by the number of columns in the merged region. :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") $vbLabelText $csharpLabel Example For instance, if the content has a width of 117 pixels and is located in a merged region that spans 2 columns, applying auto resize on any of these columns will result in the width of 59 pixels for each column. The AutoSizeColumn method needs to be applied to each column individually. What if the value is set to false? When the value is set to false, the AutoSizeColumn method adjusts the width based on the cell's content with the longest width. In Microsoft Excel, when a range of cells is merged, it keeps only the upper-left value and erases the rest. However, the IronXL Merge method does NOT erase the value of other cells in the merged region. :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) $vbLabelText $csharpLabel The width of merged cells was not being prioritized, resulting in no changes in width because each column's width was calculated based on its content width. The Differences between Excel and IronXL Auto Resize Rows The Excel autofit row height function applies a noticeable top and bottom padding to the cell. Columns The Excel autofit column width function also applies a left and right padding to the cell, but it is less noticeable. Manual Resizing of Height and Width Example In addition to relying on the AutoSizeRow and AutoSizeColumn methods to calculate and adjust the width and height of the content, you also have the flexibility to manually adjust the width and height of columns and rows to meet your specific requirements. This allows you to set them to a certain value that suits your needs. Adjust the height: set the Height property of the RangeRow. Adjust the width: set the Width property of the RangeColumn. :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 $vbLabelText $csharpLabel Height and Width Units in Excel The measurement units for height and width in Excel differ from each other. Specifically, the height is measured in 1/20 of a point, while the width is determined based on the number of "0"s that can fit in a cell using the font specified in the "Normal" style. To simplify the conversion of units, let's interpret the value in IronXL, which corresponds to the display pixels in Microsoft Excel. It is important to note that a pixel does not represent a physical point on the screen; rather, it is defined as 1/96 of an inch, regardless of the screen's actual resolution. Excel itself is designed to be resolution-independent and does not rely on physical pixels. To establish a relationship between IronXL and Excel's height and width measurements, you can consider the following approximations: Height: RangeRow.Height = 10 will result in an approximate height of 1 pixel. Width: RangeColumn.Width = 23.255 will correspond to 1 pixel. Frequently Asked Questions How do I auto resize rows in Excel using C#? You can utilize the AutoSizeRow method in IronXL to automatically adjust the height of rows based on their content in an Excel sheet. What is the method to auto resize columns in an Excel sheet? IronXL offers the AutoSizeColumn method, which allows for automatic adjustment of column widths based on the content. How can I ensure merged cells are resized correctly in Excel? IronXL supports resizing of merged cells by using a Boolean parameter in the AutoSizeRow and AutoSizeColumn methods to consider merged cells during resizing. What advantages does IronXL provide over Excel's native auto resize functions? IronXL offers precise control over cell dimensions without the added padding that Excel's native auto resize functions apply, allowing for more accurate cell sizing. Is it possible to manipulate Excel files in C# without Microsoft Office Interop? Yes, IronXL allows you to manipulate Excel files directly in C# without relying on Microsoft Office Interop, making it more efficient and easier to use. How do I manually set row and column sizes in an Excel file using C#? You can manually set the height and width of rows and columns by adjusting the Height and Width properties of RangeRow and RangeColumn in IronXL. What units are used by IronXL when setting row heights and column widths? IronXL uses Excel's default measurement units, where height is in 1/20 of a point and width is determined by the number of '0's that fit using the font in the 'Normal' style. Can IronXL automate the resizing process of Excel sheets? Yes, IronXL can automate the resizing of rows and columns, which enhances productivity by reducing the need for manual adjustments. Are there resources available for learning how to resize Excel rows and columns using C#? Yes, IronXL provides a video tutorial on resizing rows and columns, available on YouTube, to assist developers in learning how to use these features. Why is auto resizing important for Excel spreadsheets? Auto resizing is crucial for improving the readability and aesthetics of Excel spreadsheets, ensuring that all content is visible and neatly presented without manual intervention. Chaknith Bin Chat with engineering team now Software Engineer Chaknith works on IronXL and IronBarcode. He has deep expertise in C# and .NET, helping improve the software and support customers. His insights from user interactions contribute to better products, documentation, and overall experience. Ready to Get Started? Free NuGet Download Total downloads: 1,558,208 View Licenses