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 What is IronXL? IronXL is a C# library that provides functionality to manipulate Excel files, including automatically resizing rows and columns without using Interop. How can I auto resize rows in Excel? You can use the AutoSizeRow method provided by IronXL to automatically adjust the height of rows based on their content. Can columns be resized automatically? Yes, IronXL allows you to use the AutoSizeColumn method to automatically adjust the width of columns based on their content. Does the resizing support merged cells? IronXL supports resizing of merged cells by using a Boolean parameter in the AutoSizeRow and AutoSizeColumn methods to consider merged cells. What is the difference between Excel and auto resize functions? Excel's auto resize functions apply noticeable padding to cells, while IronXL provides more direct control over cell dimensions without additional padding. How can I manually resize rows and columns? 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 for setting height and width in Excel? In Excel, height is measured in 1/20 of a point, and width is measured by the number of '0's that fit using the font in the 'Normal' style. Can Excel files be handled without using Interop? Yes, IronXL can manipulate Excel files directly in C# without the need for Microsoft Office Interop. What are the benefits of automating resizing in Excel? IronXL automates the process of resizing rows and columns, saving time and effort compared to manual adjustments in Excel. Is there a video tutorial available for resizing rows and columns? Yes, there is a video tutorial available on resizing rows and columns using IronXL, which can be found on YouTube. Chaknith Bin Chat with engineering team now Software Engineer Chaknith is the Sherlock Holmes of developers. It first occurred to him he might have a future in software engineering, when he was doing code challenges for fun. His focus is on IronXL and IronBarcode, but he takes pride in helping customers with every product. Chaknith leverages his knowledge from talking directly with customers, to help further improve the products themselves. His anecdotal feedback goes beyond Jira tickets and supports product development, documentation and marketing, to improve customer’s overall experience.When he isn’t in the office, he can be found learning about machine learning, coding and hiking. Ready to Get Started? Free NuGet Download Total downloads: 1,487,525 View Licenses