Проблемы с экспортом данных в Excel с помощью ClosedXML и шаблона XLSXC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Проблемы с экспортом данных в Excel с помощью ClosedXML и шаблона XLSX

Сообщение Anonymous »

У меня есть следующий шаблон XLSX:



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();
Интересно, что если я поменяю столбец 30 на столбец 32 путем копирования и вставки, это приведет к следующему:



Название 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Экспортируйте файлы в файл Excel XLSX с помощью C# и ClosedXML.Excel.
    Anonymous » » в форуме C#
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous
  • При открытии файла xlsx с помощью ClosedXML на C# я получаю исключение ArgumentOutOfRangeException.
    Anonymous » » в форуме C#
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • При открытии файла xlsx с помощью ClosedXML на C# я получаю исключение ArgumentOutOfRangeException.
    Anonymous » » в форуме C#
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Альптировать заказ столбца в Excel перед экспортом с использованием Java
    Anonymous » » в форуме JAVA
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Столбцы защищены от записи, но разрешена автоматическая фильтрация в Excel, созданном с помощью ClosedXML.
    Anonymous » » в форуме C#
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»