Цель — заполнить столбцы, созданные динамически. Я не могу использовать класс с заранее созданными полями, потому что в моем случае сначала нужно найти теги.
Ожидания:
excel:
{{model.name}} {{manufacturer.name}}
После обработки:
A1 B1
A2 B2
A3 B3
A4 B4
Реальность:
код:
var value = new Dictionary
{
["model"] = new[]
{
new { name = "A1" },
new { name = "A2" },
new { name = "A3" },
new { name = "A4" }
},
["manufacturer"] = new[]
{
new { name = "B1" },
new { name = "B2" },
new { name = "B3" },
new { name = "B4" },
},
};
Excel:
{{model.name}} {{manufacturer.name}}
Результат:
B1 {{manufacturer.name}}
B2 {{manufacturer.name}}
B3 {{manufacturer.name}}
B4 {{manufacturer.name}}
Другой подход с использованием нескольких кодов SaveAsByTemplateAsync()
:MemoryStream memoryStream = new MemoryStream(0);
memoryStream.Write(bytes, 0, bytes.Length);
var value = new Dictionary
{
["model"] = new[]
{
new { name = "A1" },
new { name = "A2" },
new { name = "A3" },
new { name = "A4" }
},
};
byte[] copiedData = memoryStream.ToArray();
await memoryStream.SaveAsByTemplateAsync(copiedData, value);
memoryStream.Position = 0;
MemoryStream clonedStream = new MemoryStream();
await memoryStream.CopyToAsync(clonedStream);
clonedStream.Position = 0;
await memoryStream.DisposeAsync();
byte[] copiedData1 = clonedStream.ToArray();
var value1 = new Dictionary
{
["manufacturer"] = new[]
{
new { name = "B1" },
new { name = "B2" },
new { name = "B3" },
new { name = "B4" }
},
};
await clonedStream.SaveAsByTemplateAsync(copiedData1, value1);
Результат:
A1 B1
A1 B2
A1 B3
A1 B4
A2 B1
A2 B2
A2 B3
A2 B4
A3 B1
A3 B2
A3 B3
A3 B4
A4 B1
A4 B2
A4 B3
A4 B4
Подробнее здесь: https://stackoverflow.com/questions/793 ... ynamically
MiniExcel – невозможно динамически заполнять теги Excel ⇐ C#
Место общения программистов C#
-
Anonymous
1737367888
Anonymous
[b]Цель[/b] — заполнить столбцы, созданные динамически. Я не могу использовать класс с заранее созданными полями, потому что в моем случае сначала нужно найти теги.
[b]Ожидания:[/b]
excel:
{{model.name}} {{manufacturer.name}}
После обработки:
A1 B1
A2 B2
A3 B3
A4 B4
[b]Реальность:[/b]
[b]код:[/b]
var value = new Dictionary
{
["model"] = new[]
{
new { name = "A1" },
new { name = "A2" },
new { name = "A3" },
new { name = "A4" }
},
["manufacturer"] = new[]
{
new { name = "B1" },
new { name = "B2" },
new { name = "B3" },
new { name = "B4" },
},
};
[b]Excel:[/b]
{{model.name}} {{manufacturer.name}}
[b]Результат:[/b]
B1 {{manufacturer.name}}
B2 {{manufacturer.name}}
B3 {{manufacturer.name}}
B4 {{manufacturer.name}}
[b]Другой подход с использованием нескольких кодов SaveAsByTemplateAsync()[/b]
[b]:[/b]MemoryStream memoryStream = new MemoryStream(0);
memoryStream.Write(bytes, 0, bytes.Length);
var value = new Dictionary
{
["model"] = new[]
{
new { name = "A1" },
new { name = "A2" },
new { name = "A3" },
new { name = "A4" }
},
};
byte[] copiedData = memoryStream.ToArray();
await memoryStream.SaveAsByTemplateAsync(copiedData, value);
memoryStream.Position = 0;
MemoryStream clonedStream = new MemoryStream();
await memoryStream.CopyToAsync(clonedStream);
clonedStream.Position = 0;
await memoryStream.DisposeAsync();
byte[] copiedData1 = clonedStream.ToArray();
var value1 = new Dictionary
{
["manufacturer"] = new[]
{
new { name = "B1" },
new { name = "B2" },
new { name = "B3" },
new { name = "B4" }
},
};
await clonedStream.SaveAsByTemplateAsync(copiedData1, value1);
Результат:
A1 B1
A1 B2
A1 B3
A1 B4
A2 B1
A2 B2
A2 B3
A2 B4
A3 B1
A3 B2
A3 B3
A3 B4
A4 B1
A4 B2
A4 B3
A4 B4
Подробнее здесь: [url]https://stackoverflow.com/questions/79370881/miniexcel-unable-to-fill-excel-tags-dynamically[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия