Введение
MiniWord — это простая и эффективная библиотека шаблонов .NET Word.
Начало работы
Установка: nuget link: https://www.nuget.org/packages/MiniWord.
Быстрый старт: шаблон следует принципу «что видишь, то и получаешь» (WYSIWYG), а стили тегов шаблона полностью сохраняются.
var value = new Dictionary<string, object>(){["title"] = "Hello MiniWord"};
MiniSoftware.MiniWord.SaveAsByTemplate(outputPath, templatePath, value);
Ввод и вывод
— Ввод поддерживает путь к файлу, byte[]. — Вывод поддерживает путь к файлу, byte[], поток.
SaveAsByTemplate(string path, string templatePath, Dictionary<string, object> value)
SaveAsByTemplate(string path, byte[] templateBytes, Dictionary<string, object> value)
SaveAsByTemplate(this Stream stream, string templatePath, Dictionary<string, object> value)
SaveAsByTemplate(this Stream stream, byte[] templateBytes, Dictionary<string, object> value)
Теги
Формат строки шаблона MiniWord похож на Vue, React {{tag}}
, пользователям нужно только убедиться, что тег и ключ параметра значения совпадают, тогда система автоматически заменит их.
Текст
{{tag}}
Пример:
var value = new Dictionary<string, object>()
{
["Name"] = "Jack",
["Department"] = "IT Department",
["Purpose"] = "Shanghai site needs a new system to control HR system.",
["StartDate"] = DateTime.Parse("2022-09-07 08:30:00"),
["EndDate"] = DateTime.Parse("2022-09-15 15:30:00"),
["Approved"] = true,
["Total_Amount"] = 123456,
};
MiniWord.SaveAsByTemplate(path, templatePath, value);
Шаблон:
Результат:
Изображение
Тип значения — MiniWordPicture
.
Пример:
var value = new Dictionary<string, object>()
{
["Logo"] = new MiniWordPicture() { Path= PathHelper.GetFile("DemoLogo.png"), Width= 180, Height= 180 }
};
MiniWord.SaveAsByTemplate(path, templatePath, value);
Шаблон:
Результат:
Список
Значение тега — string[]
или IList<string>
.
Пример:
var value = new Dictionary<string, object>()
{
["managers"] = new[] { "Jack" ,"Alan"},
["employees"] = new[] { "Mike" ,"Henry"},
};
MiniWord.SaveAsByTemplate(path, templatePath, value);
Шаблон:
Результат:
Таблица
Значение тега — IEmerable<Dictionary<string,object>>
.
Пример:
var value = new
``` Данный текст представляет собой фрагмент кода на языке C#, в котором используются различные структуры данных, такие как словари и списки. В тексте также присутствуют вызовы методов и использование различных типов данных.
В тексте есть примеры использования шаблонов для генерации документов, но без контекста сложно понять, что именно генерируется. Также в тексте упоминаются теги `{{if` и `endif}}`, но их использование не показано.
Для более точного перевода необходимо больше информации о контексте и целях данного фрагмента кода. **Текст запроса:**
Template For Single Paragraph:
*Screenshot 2023-08-08 at 17 55 46*
<img width="931" alt="Screenshot 2023-08-08 at 17 55 46" src="https://github.com/mini-software/MiniWord/assets/38832863/2adea468-a9c1-422f-a270-167086bc4ba3">
Result Of Single Paragraph:
*Screenshot 2023-08-08 at 17 56 47*
<img width="536" alt="Screenshot 2023-08-08 at 17 56 47" src="https://github.com/mini-software/MiniWord/assets/38832863/01f71c0f-eee0-4189-8510-abe063126514">
ColorText:
Example:
```csharp
var value = new
{
Company_Name = new MiniWordColorText { Text = "MiniSofteware", FontColor = "#eb70AB", },
Name = new[] {
new MiniWordColorText { Text = "Ja", HighlightColor = "#eb70AB" },
new MiniWordColorText { Text = "ck", HighlightColor = "#a56abe" }
},
CreateDate = new MiniWordColorText
{
Text = new DateTime(2021, 01, 01).ToString(),
HighlightColor = "#eb70AB",
FontColor = "#ffffff",
},
VIP = true,
Points = 123,
APP = "Demo APP",
};
MiniWord.SaveAsByTemplate(path, templatePath, value);
Other:
POCO or dynamic parameter: v0.5.0 support POCO or dynamic parameter
var value = new { title = "Hello MiniWord" };
MiniWord.SaveAsByTemplate(outputPath, templatePath, value);
FontColor and HighlightColor:
var value = new
{
Company_Name = new MiniWordColorText { Text = "MiniSofteware", FontColor = "#eb70AB" },
Name = new MiniWordColorText { Text = "Jack", HighlightColor = "#eb70AB" },
CreateDate = new MiniWordColorText { Text = new DateTime(2021, 01, 01).ToString(), HighlightColor = "#eb70AB", FontColor = "#ffffff" },
VIP = true,
Points = 123,
APP = "Demo APP",
};
HyperLink:
If value type is MiniWordHyperLink
system will replace template string by hyperlink.
var value = new
{
["Name"] = new MiniWordHyperLink(){
Url = "https://google.com",
Text = "Test Link!!"
},
["Company_Name"] = "MiniSofteware",
["CreateDate"] = new DateTime(2021, 01, 01),
["VIP"] = true,
["Points"] = 123,
["APP"] = "Demo APP",
};
MiniWord.SaveAsByTemplate(path, templatePath, value);
Перевод текста на русский язык:
Шаблон для одного абзаца:
Скриншот 2023–08–08 в 17:55:46 <img width=«931» alt=«Скриншот 2023–08–08 в 17:55:46» src=«https://github.com/mini–software/MiniWord/assets/38832863/2adea468–a9c1–422f–a270–167086bc4ba3»>
Результат для одного абзаца:
Скриншот 2023–08–08 в 17:56:47 <img width=«536» alt=«Скриншот 2023–08–08 в 17:56:47» src=«https://github.com/mini–software/MiniWord/assets/38832863/01f71c0f–eee0–4189–8510–abe063126514»>
ColorText: Пример:
var value = new
{
Company_Name = new MiniWordColorText { Text = «MiniSofteware», FontColor = «#eb70ab», },
Name = new [] {
new MiniWordColorText { Text = «Ja», HighlightColor = «#eb70ab» },
new MiniWordColorText { Text = «ck», HighlightColor = «#a56abe» }
},
CreateDate = new MiniWordColorText
{
Text = new DateTime (2021, 01, 01) .ToString (),
HighlightColor = «#eb70ab»,
FontColor = «#ffffff»,
},
VIP = true,
Points = 123,
APP = «Demo APP»,
};
MiniWord .SaveAsByTemplate (path, templatePath, value) ;
Другое:
Поддержка POCO или динамического параметра: V0 .5 .0 поддерживает POCO или динамический параметр
var value = new {title = «Hello MiniWord»};
MiniWord .SaveAsByTemplate (outputPath, templatePath, value);
FontColor и HighlightColor:
var value = new
{
Company_Name = new MiniWordColorText {Text = «MiniSofteware», FontColor = «#eb70ab»},
Name = new MiniWordColorText {Text = «Jack», HighlightColor = «#eb70ab»},
CreateDate = new MiniWordColorText {
Text = new DateTime (2021, 01, 01) .ToString (), HighlightColor = «#eb70ab», FontColor = «#ffffff»
},
VIP = true,
Points = 123,
APP = «Demo APP»,
};
Гиперссылка:
Если тип значения — MiniWordHyperLink
, система заменит строку шаблона гиперссылкой.
var value = new
{
[«Name»] = new MiniWordHyperLink() {
Url = «https://google.com»,
Text = «Test Link!!»
},
[«Company_Name»] = «MiniSofteware»,
[«CreateDate»] = new DateTime (2021, 01, 01),
[«VIP»] = true,
[«Points»] = 123,
[«APP»] = «Demo APP»,
};
MiniWord .SaveAsByTemplate (path, templatePath, value);
``` **Новый словарь <строка, объект> {
{ "имя", "Заём" },{ "отдел", "IT" }
},**
**[«сотрудники»] = новый список <словарь <строка, объект>> {**
**новый словарь <строка, объект>{ { "имя", "Уэйд" },{ "отдел", "HR" } },**
**новый словарь <строка, объект>{ { "имя", "Феликс" },{ "отдел", "HR" } },**
**новый словарь <строка, объект>{ { "имя", "Эрик" },{ "отдел", "IT" } },**
**новый словарь <строка, объект>{ { "имя", "Китон" },{ "отдел", "IT" } }**
**}**
**};**
**public IActionResult DownloadWordFromTemplatePath()**
**{**
**string templatePath = "TestTemplateComplex.docx";**
**Словарь <строка, объект> значение = defaultValue;**
**MemoryStream memoryStream = new MemoryStream();**
**MiniWord.SaveAsByTemplate(memoryStream, templatePath, значение);**
**memoryStream.Seek(0, SeekOrigin.Begin);**
**return new FileStreamResult(memoryStream, "application/vnd.openxmlformats-officedocument.wordprocessingml.document")**
**{**
**FileDownloadName = "demo.docx"**
**};**
**}**
**private static Словарь <строка, байт[]> TemplateBytesCache = новый словарь <строка, байт[]>();**
**static ApiController()**
**{**
**string templatePath = "TestTemplateComplex.docx";**
**byte[] bytes = System.IO.File.ReadAllBytes(templatePath);**
**TemplateBytesCache.Add(templatePath, bytes);**
**}**
**public IActionResult DownloadWordFromTemplateBytes()**
**{**
**byte[] bytes = TemplateBytesCache["TestTemplateComplex.docx"];**
**Dictionary <строка, объект> значение = defaultValue;**
**MemoryStream memoryStream = new MemoryStream();**
**MiniWord.SaveAsByTemplate(memoryStream, bytes, значение);**
**memoryStream.Seek(0, SeekOrigin.Begin);**
**return new FileStreamResult(memoryStream, "application/vnd.openxmlformats-officedocument.wordprocessingml.document")**
**{**
**FileDownloadName = "demo.docx"**
**};**
**}**
## Support : [Donate Link](https://miniexcel.github.io/)
*Примечание: в тексте запроса присутствуют фрагменты кода на языке C#, который не относится к тематике auto. В ответе переведён только текст.*
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )