C# 获取自动拟合后excel行的高度,然后将其增加到Epplus
我正在尝试在自动装配行之后增加行的高度。 例如:第一行高度为15 我通过以下方式自动调整它们:C# 获取自动拟合后excel行的高度,然后将其增加到Epplus,c#,excel,epplus,C#,Excel,Epplus,我正在尝试在自动装配行之后增加行的高度。 例如:第一行高度为15 我通过以下方式自动调整它们: //The first row var start = sheet.Dimension.Start; //The last row var end = sheet.Dimension.End; for (int row = start.Row; row <= end
//The first row
var start = sheet.Dimension.Start;
//The last row
var end = sheet.Dimension.End;
for (int row = start.Row; row <= end.Row; row++)
{
//This makes Excel auto fit the row but content
sheet.Row(row).CustomHeight = true;
}
问题是Excel在打开Excel文件时自动拟合,因此EPPlus不会获取更新的行高信息,而是旧信息
因此,行高现在是18.75(15*1.25),而不是37.5(30*1.25)您不能。正如您所说的“Excel在打开Excel文件时进行自动拟合”-因此,这是在EPPlus处理该文件很久之后。您所做的(也可以做的)就是告诉Excel相应地调整高度
(这与列不同:EPPlus可以执行sheet.Column(Column).AutoFit();
并将宽度设置为适当的值-但不幸的是,行高不适用。也许这是在新的EPPlus商业版本中添加的?)
我认为你的选择是做一些实验,并尝试自己在ePlus中计算和设置高度
或者在Excel文件中运行VBA脚本来执行此任务-这没有问题,如下所示:
With Sheets("Formular").Range(Cells(14, 1), Cells(14 + i - 1, 4))
.EntireRow.AutoFit
.VerticalAlignment = xlTop
For Each r In .Rows
r.RowHeight = r.Height + 5
Next r
End With
当然,当您的环境中不允许运行宏时,这可能不是您的选项
With Sheets("Formular").Range(Cells(14, 1), Cells(14 + i - 1, 4))
.EntireRow.AutoFit
.VerticalAlignment = xlTop
For Each r In .Rows
r.RowHeight = r.Height + 5
Next r
End With