0

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

4

2 回答 2

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

于 2012-10-15T08:09:25.170 回答
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

于 2016-01-26T18:15:47.727 回答