1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/MiniWord

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Введение

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.

  • Url: HyperLink URI target path
  • Text:Description
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, система заменит строку шаблона гиперссылкой.

  • URL: целевой путь гиперссылки
  • Текст: описание
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 )

Вы можете оставить комментарий после Вход в систему

Введение

Шаблонный экспортный движок .NET Word (docx) не требует установки поддержки Office COM+ в Linux и Mac. Развернуть Свернуть
C#
Apache-2.0
Отмена

Обновления (3)

все

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/MiniWord.git
git@api.gitlife.ru:oschina-mirror/MiniWord.git
oschina-mirror
MiniWord
MiniWord
main