如何在C#中使用ClosedXml自动调整Excel单元格大小

10
我正在尝试使用 ClosedXML.Excel 调整单元格大小以适应文本的最大长度,但该单元格给出了以下错误信息:

Severity Code Description Project File Line Suppression State Error CS0119 'IXLRangeBase.Cells()' is a method, which is not valid in the given context

C#:
var workbook = new XLWorkbook();     //creates the workbook
var wsDetailedData = workbook.AddWorksheet("data"); //creates the worksheet with sheetname 'data'

wsDetailedData.Cell(1, 1).InsertTable(dataList); //inserts the data to cell A1 including default column name
wsDetailedData.Cells.SizeToContent = true;
workbook.SaveAs(@"C:\data.xlsx"); //saves the workbook
1个回答

18

您可以尝试调整列和行,而不是调整单元格:

wsDetailedData.Columns().AdjustToContents();  // Adjust column width
wsDetailedData.Rows().AdjustToContents();     // Adjust row heights

谢谢。上述对我来说运作得很好 - 但并不完美 - 因为从ClosedXML 0.68.1升级到0.95.1破坏了以前非常好的默认列宽:( 剩下的问题是:我有一个日期时间列没有展开 - 或者没有展开足够,所以显示为#######。 不是很糟糕但很烦人和不方便,特别是与0.68.1的默认行为相比。 我想这是ClosedXML 0.95.1中的一个错误:(。 - Zeek2
当我们的Web应用程序打开生成的Excel电子表格时,Excel电子表格中的列宽度最初看起来非常好(类似于v0.68.1中的默认行为),但是然后这些列会被压缩得非常糟糕和毫无意义 :( 尽管您上面的修复代码确实修复了大多数列,但未能修复日期时间列。更新:我们生成了另一个电子表格,在更新后也需要您的修复,但是那里的日期时间列宽度看起来很好。嗯。 - Zeek2
谢谢!这对我很有效。列会根据数据进行调整。 - Sanushi Salgado

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接