【问题标题】:Autofit long strings with EPPLus使用 EPPLus 自动调整长字符串
【发布时间】:2017-06-21 23:25:52
【问题描述】:

使用 EPPLus 库,我正在尝试以这种方式在 xlsx 单元格中自动调整很长的字符串:

worksheet.Cells.AutoFitColumns();

行数:1000

列数:10

对于 2 列,我预计每个单元格中大约有 6000 个字符。 在这种情况下,AutoFitColumns 方法会产生以下异常:

消息:GDI+ 中出现一般错误。

StackTrace:在 System.Drawing.Graphics.MeasureString(字符串文本,字体字体,SizeF layoutArea, StringFormat stringFormat) 在 System.Drawing.Graphics.MeasureString(字符串文本,字体字体,Int32 宽度,StringFormat 格式)在 OfficeOpenXml.ExcelRangeBase.AutoFitColumns(双最小宽度, 双最大宽度)在 OfficeOpenXml.ExcelRangeBase.AutoFitColumns()...

编辑

这是我的完整代码:

using (ExcelPackage package = new ExcelPackage(newFile))
{
    ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Sheet1");
    // Setup the first row with headers
    for (int j = 0; j < fields.Length; j++)
    {
        worksheet.Cells[1, j + 1].Value = fields[j];
    }

    Color colFromHex = ColorTranslator.FromHtml("#B4B4B4");
    worksheet.Row(1).Style.Fill.PatternType = ExcelFillStyle.Solid;
    worksheet.Row(1).Style.Fill.BackgroundColor.SetColor(colFromHex);


    // Insert new rows
    for (int i = 0; i < elements.Count; i++)
    {
        // this will return List<object>
        var properties =  elements[i].GetPatentProperties();
        for (int j = 0; j < properties.Count; j++)
        {
            worksheet.Cells[i + 2, j + 1].Value = properties[j];
        }
    }

    // This will throw an exception for big number of elements: ~ 1000 element
    worksheet.Cells.AutoFitColumns();
    worksheet.Cells.Style.WrapText = true;

    //worksheet.Cells[autosize].Style.HorizontalAlignment = ExcelHorizontalAlignment.CenterContinuous;
    package.Save();
}

请注意,对于相同的元素列表,如果我删除 worksheet.Cells.AutoFitColumns();,我将毫无例外地得到我的 xlsx 文件。

是否有可能克服这个问题?

【问题讨论】:

  • 应该可以——它的数据真的不多。也许发布更多你的代码。
  • @Ernie 我添加了完整代码
  • 看起来 EPPlus 已经意识到了这个问题:github.com/JanKallman/EPPlus/issues/445 那里有一个很好的问题描述。

标签: c# epplus


【解决方案1】:

您是否尝试过设置最小和最大列尺寸?

ws.Cells.AutoFitColumns(10, 60);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-28
    • 1970-01-01
    • 2014-07-15
    • 1970-01-01
    • 1970-01-01
    • 2019-12-01
    • 1970-01-01
    相关资源
    最近更新 更多