在我的网络应用程序中,用户可以获得Excel报告。问题是:当行中的一个单元格包含长文本时,所有行都会增长,而excel报表看起来很糟糕。我需要为excel文档中的所有行设置最大行高。
public bool UseOldFormat { get; set; }
public ExcelFile GetExcelFile()
{
var excel = new ExcelFile();
if (!string.IsNullOrEmpty(SourceFileName))
{
if (SourceFileName.EndsWith("xls"))
{
excel.LoadXls(SourceFileName);
}
else
{
excel.LoadXlsx(SourceFileName, XlsxOptions.PreserveMakeCopy);
}
}
return excel;
}
public void GenerateReport(string fileName)
{
ExcelFile excel = GetExcelFile();
InsertDataInExcel(excel);
if (UseOldFormat)
{
excel.SaveXls(fileName);
}
else
{
excel.SaveXlsx(fileName);
}
}
在excel选项中找不到此功能。有人可以帮忙吗?
答案 0 :(得分:2)
您可以指定列的范围,然后可以调整它们的宽度和高度,如下所示:
Microsoft.Office.Tools.Excel.NamedRange setColumnRowRange;
private void SetColumnAndRowSizes()
{
setColumnRowRange = this.Controls.AddNamedRange(
this.Range["C3", "E6"], "setColumnRowRange");
this.setColumnRowRange.ColumnWidth = 20;
this.setColumnRowRange.RowHeight = 25;
setColumnRowRange.Select();
}
访问:http://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.namedrange.rowheight.aspx
答案 1 :(得分:0)
如果你的文件有一些太高的行,这个宏可以解决问题:
(由您决定,Oleg,如何将其集成到文档创建工具中,以防万一)
Sub MaxRowHeight()
Dim Re As Long
Re = ActiveCell.SpecialCells(xlLastCell).Row
For i = 1 To Re
If Rows(i).Height > 43.2 Then Rows(i).RowHeight = 43.2
Next i
End Sub
致敬本文及其中的讨论:
http://excelribbon.tips.net/T010381_Adjusting_to_a_Maximum_Row_Height.html