Как установить ширину столбца для отдельного столбца в Excel, используя аннотации данных - PullRequest
0 голосов
/ 29 октября 2018

Я должен экспортировать данные в 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();
}

Здесь, в приведенном выше коде, я хотел бы перебрать коллекцию и добавить ширину листа согласно атрибутам данных, определенным в свойстве. Можете ли вы рассказать мне, как перебрать атрибут данных и указать ширину листа?

Например, как и в First name, я хотел, чтобы длина столбца составляла только 12 символов (независимо от длины, предоставляемой из базы данных), а ширина должна быть такой, как определено в аннотациях данных. У меня есть спецификации, как показано ниже:

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

Вывод, который я получаю в настоящее время:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...