在生成的Excel文档中设置最大行高

时间:2012-10-15 07:44:33

标签: c# asp.net

在我的网络应用程序中,用户可以获得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选项中找不到此功能。有人可以帮忙吗?

2 个答案:

答案 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