Column1Lbl
Column2Lbl
...
Column30Lbl
Column31Lbl
Column32Lbl
Column33Lbl
{{item.Column1}}
{{item.Column2}}
...
{{item.Column30}}
{{item.Column31}}
{{item.Column32}}
{{item.Column33}}
{{item.Column1}}
{{item.Column2}}< /td>
...
{{item.Column30}
{{item.Column31}
{{item.Column32}}
{{item.Column33}}
{{item.Column1}}
{ {item.Column2}}
...
{{item.Column30}}
{{item.Column31}}
{{item.Column32}}
{{item.Column33}}
< /td>
...
При экспорте результаты:
Название 1
Название 2
...
Название 30
Название 31
Название 32
Название 33
Данные 1 1
Данные 2 1
...
Данные 30 1
Данные 30 1
Данные 31 1
В типе "d__97`1" не существует свойства или поля "column32"
< td style="text-align: center;">В типе "d__97`1" не существует свойства или поля "column33"
Данные 1 2
Данные 2 2
...
Данные 30 2
Данные 31 2
Данные 1 3
Данные 2 3
...
< td style="text-align: center;">Данные 30 3
Данные 31 3
...
Вот соответствующая часть моего исходного кода:
Код: Выделить всё
var template = new XLTemplate(PropertiesFile.GetRequiredProperty(PropertiesFile.TEMPLATE_PATH));
var dataShipments = new DataTable();
dataShipments.Columns.Add("Column1", typeof(string));
dataShipments.Columns.Add("Column2", typeof(string));
...
dataShipments.Columns.Add("Column30", typeof(string));
dataShipments.Columns.Add("Column31", typeof(string));
dataShipments.Columns.Add("Column32", typeof(string));
dataShipments.Columns.Add("Column33", typeof(string));
IQueryable groupItemsByColumn2 = dataItems.GroupBy(item => item.column2);
foreach (IGrouping groupedItemByColumn2 in groupItemsByColumn2)
{
IList items = groupedItemByColumn2.ToList();
foreach (DataItems item in items)
{
//Aquíe es donde se asignan los valores:
DataRow newRow = dataShipments.NewRow();
newRow["Column1"] = item.Column1 ?? string.Empty;
newRow["Column2"] = item.Column2 ?? string.Empty;
...
newRow["Column30"] = item.Column30 ?? string.Empty;
newRow["Column31"] = item.Column31 ?? string.Empty;
newRow["Column32"] = item.Column32 ?? string.Empty;
newRow["Column33"] = item.Column33 ?? string.Empty;
dataShipments.Rows.Add(newRow);
}
}
template.AddVariable("item",dataShipments);
//Lo siguiente parece que funciona bien debido a que se aplican todos los títulos:
template.AddVariable("Column1Lbl", "Títlo 1");
template.AddVariable("Column2Lbl", "Títlo 2");
...
template.AddVariable("Column30Lbl", "Títlo 30");
template.AddVariable("Column31Lbl", "Títlo 31");
template.AddVariable("Column32Lbl", "Títlo 32");
template.AddVariable("Column33Lbl", "Títlo 33");
template.Generate();
Название 1
Название 2
...
Название 30
Название 31
Название 32
Название 33
Данные 1 1
Данные 2 1
...
Данные 32 1
Данные 20 1
Нет свойства или поля "column30" в типе "d__97`1"
Нет свойства или поля "column33" в типе ' d__97`1'
Данные 1 2
Данные 2 2
...
< td style="text-align: center;">Данные 32 2
Данные 20 2
Данные 1 3
Данные 2 3
...
Данные 32 3
Данные 20 3
...
Обратите внимание, что заголовки обрабатываются правильно.
Подробнее здесь: https://stackoverflow.com/questions/789 ... plate-xlsx