Я должен экспортировать данные в 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
Вывод, который я получаю в настоящее время: