Web Analytics

MiniWord

⭐ 704 stars Persian by mini-software

NuGet GitHub stars version Ask DeepWiki


version version version version version version version version version version version version version version version version version


ستاره‌زدن به پروژه و حمایت مالی شما می‌تواند MiniWord را بهتر کند


معرفی

MiniWord یک کتابخانه قالب ورد برای دات‌نت است که ساده و کارآمد می‌باشد.

image

شروع کار

نصب

شروع سریع

الگو بر اساس طراحی "هر آنچه می‌بینید همان است که دریافت می‌کنید" ساخته شده و سبک تگ‌های قالب کاملاً حفظ می‌شود.

var value = new Dictionary(){["title"] = "Hello MiniWord"};
MiniSoftware.MiniWord.SaveAsByTemplate(outputPath, templatePath, value);
تصویر

ورودی، خروجی

SaveAsByTemplate(string path, string templatePath, Dictionary value)
SaveAsByTemplate(string path, byte[] templateBytes, Dictionary value)
SaveAsByTemplate(this Stream stream, string templatePath, Dictionary value)
SaveAsByTemplate(this Stream stream, byte[] templateBytes, Dictionary value)

برچسب‌ها

فرمت رشته قالب MiniWord مانند Vue، React به صورت {{tag}} است، کاربران فقط باید مطمئن شوند که کلید برچسب و پارامتر مقدار یکسان باشد تا سیستم به طور خودکار آن‌ها را جایگزین کند.

متن

{{tag}}
##### مثال

var value = new Dictionary()
{
    ["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()
{
    ["Logo"] = new MiniWordPicture() { Path= PathHelper.GetFile("DemoLogo.png"), Width= 180, Height= 180 }
};
MiniWord.SaveAsByTemplate(path, templatePath, value);
##### قالب

image

##### نتیجه

image

لیست

مقدار tag از نوع string[] یا IList است

##### مثال

var value = new Dictionary()
{
    ["managers"] = new[] { "Jack" ,"Alan"},
    ["employees"] = new[] { "Mike" ,"Henry"},
};
MiniWord.SaveAsByTemplate(path, templatePath, value);
قالب

image

##### نتیجه

image

جدول

مقدار تگ از نوع IEmerable> است

##### مثال

var value = new Dictionary()
{
    ["TripHs"] = new List>
    {
        new Dictionary
        {
            { "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
        {
            { "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);
##### قالب

تصویر

##### نتیجه

تصویر

لیست داخل لیست

مقدار تگ از نوع IEnumerable است. افزودن تگ‌های {{foreach و endforeach}} به قالب الزامی است.

##### مثال

var value = new Dictionary()
{
    ["TripHs"] = new List>
    {
        new Dictionary
        {
            { "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()
                {
                    new MiniWordForeach()
                    {
                        Value = new Dictionary()
                        {
                            {"Text", "Air"},
                            {"Value", "Airplane"}
                        },
                        Separator = " | "
                    },
                    new MiniWordForeach()
                    {
                        Value = new Dictionary()
                        {
                            {"Text", "Parking"},
                            {"Value", "Car"}
                        },
                        Separator = " / "
                    }
                }
            }
        }
    }
};
MiniWord.SaveAsByTemplate(path, templatePath, value);
##### قالب

before_foreach

Screenshot 2023-08-08 at 17 59 37

##### نتیجه

after_foreach

Screenshot 2023-08-08 at 18 00 15

دستور if درون قالب

برای پاراگراف‌های چندگانه، از تگ‌های @if و @endif استفاده کنید. برای پاراگراف تکی و داخل foreach، از تگ‌های {{if و endif}} استفاده کنید تا قالب مورد نیاز باشد.

##### مثال

var value = new Dictionary()
{
    ["Name"] = new List(){
        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);
##### قالب برای چند پاراگراف

before_if

##### نتیجه چند پاراگراف

after_if

##### قالب برای یک پاراگراف

Screenshot 2023-08-08 at 17 55 46

##### نتیجه یک پاراگراف

Screenshot 2023-08-08 at 17 56 47

متن رنگی

##### مثال

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 یا داینامیک

نسخه 0.5.0 از پارامتر POCO یا داینامیک پشتیبانی می‌کند

var value = new { title = "Hello MiniWord" };
MiniWord.SaveAsByTemplate(outputPath, templatePath, value);

رنگ قلم و رنگ برجسته

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);

نمونه‌ها

#### خروجی API در ASP.NET Core 3.1

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using MiniSoftware;

public class Program { public static void Main(string[] args) => CreateHostBuilder(args).Build().Run();

public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args).ConfigureWebHostDefaults(webBuilder => webBuilder.UseStartup()); }

public class Startup { public void ConfigureServices(IServiceCollection services) => services.AddMvc(); public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { app.UseStaticFiles(); app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapControllerRoute( name: "default", pattern: "{controller=api}/{action=Index}/{id?}"); }); } }

public class ApiController : Controller { public IActionResult Index() { return new ContentResult { ContentType = "text/html", StatusCode = (int)HttpStatusCode.OK, Content = @" DownloadWordFromTemplatePath
DownloadWordFromTemplateBytes
" }; }

static Dictionary defaultValue = new Dictionary() { ["title"] = "FooCompany", ["managers"] = new List> { new Dictionary{{"name","Jack"},{ "department", "HR" } }, new Dictionary {{ "name", "Loan"},{ "department", "IT" } } }, ["employees"] = new List> { new Dictionary{{ "name", "Wade" },{ "department", "HR" } }, new Dictionary {{ "name", "Felix" },{ "department", "HR" } }, new Dictionary{{ "name", "Eric" },{ "department", "IT" } }, new Dictionary {{ "name", "Keaton" },{ "department", "IT" } } } };

public IActionResult DownloadWordFromTemplatePath() { string templatePath = "TestTemplateComplex.docx";

Dictionary value = defaultValue;

MemoryStream memoryStream = new MemoryStream(); MiniWord.SaveAsByTemplate(memoryStream, templatePath, value); memoryStream.Seek(0, SeekOrigin.Begin); return new FileStreamResult(memoryStream, "application/vnd.openxmlformats-officedocument.wordprocessingml.document") { FileDownloadName = "demo.docx" }; }

private static Dictionary TemplateBytesCache = new Dictionary();

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 value = defaultValue;

MemoryStream memoryStream = new MemoryStream(); MiniWord.SaveAsByTemplate(memoryStream, bytes, value); memoryStream.Seek(0, SeekOrigin.Begin); return new FileStreamResult(memoryStream, "application/vnd.openxmlformats-officedocument.wordprocessingml.document") { FileDownloadName = "demo.docx" }; } }

پشتیبانی : لینک حمایت مالی

--- Tranlated By Open Ai Tx | Last indexed: 2025-07-17 ---