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

OSCHINA-MIRROR/dotnetchina-MiniWord

Клонировать/Скачать
README.zh-CN.md 8.3 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 29.11.2024 23:05 615608b

Миниворд .NET Ворд шаблонный движок: быстрое и простое создание файлов на основе шаблонов и данных

Миниворд — это .NET Word шаблонный движок, который позволяет быстро и просто создавать файлы на основе шаблонов и данных.

Введение

Миниворд — это .NET Word шаблонный движок, позволяющий быстро и просто генерировать файлы на основе шаблонов и данных.

Быстрый старт

Шаблоны Миниворда следуют принципу «что видишь, то и получаешь». Стиль шаблона и тегов полностью сохраняется.

var value = new Dictionary<string, object>() { ["title"] = "Hello MiniWord" };
MiniSoftware.MiniWord.SaveAsByTemplate(outputPath, templatePath, value);

Установка

Ввод и вывод

  • Система поддерживает шаблоны в виде пути или массива байтов.
  • Вывод может быть направлен в файл, массив байтов или поток.
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)

Теги

В Миниворде используются шаблоны, похожие на Vue и React, с использованием строк {{tag}}. Необходимо убедиться, что ключ в параметре value совпадает с ключом в теге (с учётом регистра), и система автоматически заменит строку.

Текст

{{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);
Шаблон

image

Экспорт

image

Изображение

Тег имеет значение типа MiniWordPicture.

Пример кода
var value = new Dictionary<string, object>()
{
    ["Logo"] = new MiniWordPicture() { Path= PathHelper.GetFile("DemoLogo.png"), Width= 180, Height= 180 }
};
MiniWord.SaveAsByTemplate(path, templatePath, value);
Шаблон

image

Экспорт

image

Список

Значение тега — string[] или IList<string>.

Пример кода
var value = new Dictionary<string, object>()
{
    ["managers"] = new[] { "Jack" ,"Alan"},
    ["employees"] = new[] { "Mike" ,"Henry"},
};
MiniWord.SaveAsByTemplate(path, templatePath, value);
Шаблон

image

Экспорт

image

Таблица

Значение тега — IEmerable<Dictionary<string,object>>.

Пример кода
var value = new Dictionary<string, object>()
{
    ["TripHs"] =
``` ```
new List<Dictionary<string, object>>
    {
        new Dictionary<string, object>
        {
            { "sDate",DateTime.Parse("2022-09-08 08:30:00")},
            { "eDate",DateTime.Parse("2022-09-08 15:00:00")},
            { "How","Discussion requirement part1"},
            { "Photo",new MiniWordPicture() { Path = PathHelper.GetFile("DemoExpenseMeeting02.png"), Width = 160, Height = 90 }},
        },
        new Dictionary<string, object>
        {
            { "sDate",DateTime.Parse("2022-09-09 08:30:00")},
            { "eDate",DateTime.Parse("2022-09-09 17:00:00")},
            { "How","Discussion requirement part2 and development"},
            { "Photo",new MiniWordPicture() { Path = PathHelper.GetFile("DemoExpenseMeeting01.png"), Width = 160, Height = 90 }},
        }
    };
MiniWord.SaveAsByTemplate(path, templatePath, value);
模版

image

导出

image

二级列表

Tag 是 IEnumerable<MiniWordForeach> 类别. 使用方式{{foreachendforeach}}.

Example
var value = new Dictionary<string, object>()
{
    ["TripHs"] = new List<Dictionary<string, object>>
    {
        new Dictionary<string, object>
        {
            { "sDate", DateTime.Parse("2022-09-08 08:30:00") },
            { "eDate", DateTime.Parse("2022-09-08 15:00:00") },
            { "How", "Discussion requirement part1" },
            {
                "Details", new List<MiniWordForeach>()
                {
                    new MiniWordForeach()
                    {
                        Value = new Dictionary<string, object>()
                        {
                            {"Text", "Air"},
                            {"Value", "Airplane"}
                        },
                        Separator = " | "
                    },
                    new MiniWordForeach()
                    {
                        Value = new Dictionary<string, object>()
                        {
                            {"Text", "Parking"},
                            {"Value", "Car"}
                        },
                        Separator = " / "
                    }
                }
            }
        }
    }
};
MiniWord.SaveAsByTemplate(path, templatePath, value);
Template

before_foreach

Result

after_foreach

条件判断

@if@endif tags .

Example
var value = new Dictionary<string, object>()
{
    ["Name"] = new List<MiniWordHyperLink>(){
        new MiniWordHyperLink(){
            Url = "https://google.com",
            Text = "測試連結22!!"
        },
        new MiniWordHyperLink(){
            Url = "https://google1.com",
            Text = "測試連結11!!"
        }
    },
    ["Company_Name"] = "MiniSofteware",
    ["CreateDate"] = new DateTime(2021, 01, 01),
    ["VIP"] = true,
    ["Points"] = 123,
    ["APP"] = "Demo APP",
};
MiniWord.SaveAsByTemplate(path, templatePath, value);
Template

before_if

Result

after_if

多彩字体

代码例子
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
}

Опубликовать ( 0 )

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

1
https://api.gitlife.ru/oschina-mirror/dotnetchina-MiniWord.git
git@api.gitlife.ru:oschina-mirror/dotnetchina-MiniWord.git
oschina-mirror
dotnetchina-MiniWord
dotnetchina-MiniWord
main