如何使用数据注释在Excel中为单个列设置列宽

时间:2018-10-29 05:33:35

标签: c# asp.net-core-2.0 epplus

我必须将数据导出到excel。列的宽度定义为规格。宽度必须与导出到excel时定义的宽度完全相同。

我想定义使用Width作为模型属性的数据属性。

[AttributeUsage(AttributeTargets.Property, Inherited = false)]
internal class ColumnWidthAttribute : System.Attribute
{
    private int _width;
    public ColumnWidthAttribute(int width)
    {
        _width = width;
    }

    public virtual int Width
    {
        get
        {
            return _width;
        }
    }
}

模型类:

[DisplayName("First Name")]
[ColumnWidth(12)]
public string FirstName { get; set; }

要导出到excel的代码。

using (var excelFile = new ExcelPackage())
{
    excelFile.Workbook.Properties.Title = "Bulk Upload";
    var worksheet = excelFile.Workbook.Worksheets.Add("Sheet1");
    worksheet.Cells["A1"]
        .LoadFromCollection(Collection: items, PrintHeaders: true);
    response = excelFile.GetAsByteArray();
}

在上面的代码中,我想遍历集合并根据属性中定义的数据属性添加工作表宽度。您能指导我如何遍历data属性并提供工作表的宽度吗?

例如,在First name中,我想显示列的长度仅包含12个字符(无论数据库提供的长度如何),宽度必须与数据注释中定义的一样。我的规格如下所示:

Position Length Field 1-12      12 First Name    13-21       9 Last Name    22-27       8 DOB

我当前获得的输出:

enter image description here

0 个答案:

没有答案