miniword快速上解决导出word模板问题

发布于:2024-12-18 ⋅ 阅读:(73) ⋅ 点赞:(0)

快速开始

 /// <summary>
 /// 快速开始
 /// </summary>
 static void QuickStart()
 {
     var baseDir = AppDomain.CurrentDomain.BaseDirectory;
     var output = Path.Combine(baseDir, "output");
     if (!Directory.Exists(output))
     {
         Directory.CreateDirectory(output);
     }
     var value = new Dictionary<string, object>() { ["Title"] = "我是标题" };
     MiniSoftware.MiniWord.SaveAsByTemplate(Path.Combine(output, "001.docx"), Path.Combine(baseDir, "words", "001.docx"), value);
     Console.WriteLine("快速开始成功");
 }

在这里插入图片描述
在这里插入图片描述

插入图片

/// <summary>
/// 插入图片
/// </summary>
static void InsertImg()
{
    var baseDir = AppDomain.CurrentDomain.BaseDirectory;
    var output = Path.Combine(baseDir, "output");
    if (!Directory.Exists(output))
    {
        Directory.CreateDirectory(output);
    }
    var value = new Dictionary<string, object>()
    {
        ["img"] = new MiniWordPicture() { Path = Path.Combine(baseDir,"words", "002.jpg"), Width = 180, Height = 180 }
    };
    MiniWord.SaveAsByTemplate(Path.Combine(output, "002.docx"), Path.Combine(baseDir, "words", "002.docx"), value);
    Console.WriteLine("插入图片成功");
}

在这里插入图片描述

在这里插入图片描述

插入列表

标签值为 string[] 或是 IList<string>类别

/// <summary>
/// 插入列表
/// </summary>
static void InsertList()
{
    var baseDir = AppDomain.CurrentDomain.BaseDirectory;
    var output = Path.Combine(baseDir, "output");
    if (!Directory.Exists(output))
    {
        Directory.CreateDirectory(output);
    }
    var value = new Dictionary<string, object>()
    {
        ["managers"] = new[] { "Jack", "Alan" },
        ["employees"] = new[] { "Mike", "Henry" },
    };
    MiniWord.SaveAsByTemplate(Path.Combine(output, "003.docx"), Path.Combine(baseDir, "words", "003.docx"), value);
    Console.WriteLine("插入列表成功");
}

在这里插入图片描述
在这里插入图片描述

插入表格

/// <summary>
/// 插入表格
/// </summary>
static void InsertTable()
{
    var baseDir = AppDomain.CurrentDomain.BaseDirectory;
    var output = Path.Combine(baseDir, "output");
    if (!Directory.Exists(output))
    {
        Directory.CreateDirectory(output);
    }
    var value = new Dictionary<string, object>()
    {
        ["TripHs"] = new List<Dictionary<string, object>>
        {
            new Dictionary<string, object>
            {
                { "Start",DateTime.Now},
                { "End",DateTime.Now.AddDays(30)},
                { "Send","王小明"},
                { "Photo",new MiniWordPicture() { Path = Path.Combine(baseDir, "words", "002.jpg"), Width = 160, Height = 160 }},
            },
            new Dictionary<string, object>
            {
                { "Start",DateTime.Now},
                { "End",DateTime.Now.AddDays(30)},
                { "Send","朱大力"},
                { "Photo",new MiniWordPicture() { Path = Path.Combine(baseDir, "words", "002.jpg"), Width = 160, Height = 160 }},
            },
        }
    };
    MiniWord.SaveAsByTemplate(Path.Combine(output, "004.docx"), Path.Combine(baseDir, "words", "004.docx"), value);
    Console.WriteLine("插入表格成功");
}

在这里插入图片描述
在这里插入图片描述

循环

/// <summary>
/// 插入循环
/// </summary>
static void InsertForeachTable()
{
    var baseDir = AppDomain.CurrentDomain.BaseDirectory;
    var output = Path.Combine(baseDir, "output");
    if (!Directory.Exists(output))
    {
        Directory.CreateDirectory(output);
    }
    var value = new Dictionary<string, object>()
    {
        ["TripHs"] = new List<Dictionary<string, object>>
        {
            new Dictionary<string, object>
            {
                { "Start",DateTime.Now},
                { "End",DateTime.Now.AddDays(30)},
                { "Send","王小明"},
                { "Photo",new MiniWordPicture() { Path = Path.Combine(baseDir, "words", "002.jpg"), Width = 160, Height = 160 }},
                { "Details",new List<MiniWordForeach>()
                    {
                        new MiniWordForeach()
                        {
                            Value = new Dictionary<string, object>()
                            {
                                {"Jobs", "总经理"},
                                {"Names", "大华"}
                            },
                            Separator = " | "
                        },
                        new MiniWordForeach()
                        {
                            Value = new Dictionary<string, object>()
                            {
                                {"Jobs", "经理"},
                                {"Names", "小华"}
                            },
                            Separator = " | "
                        },
                    } 
                },
            },
            new Dictionary<string, object>
            {
                { "Start",DateTime.Now},
                { "End",DateTime.Now.AddDays(30)},
                { "Send","朱大力"},
                { "Photo",new MiniWordPicture() { Path = Path.Combine(baseDir, "words", "002.jpg"), Width = 160, Height = 160 }},
                { "Details",new List<MiniWordForeach>()
                    {
                        new MiniWordForeach()
                        {
                            Value = new Dictionary<string, object>()
                            {
                                {"Jobs", "总经理"},
                                {"Names", "大明"}
                            },
                            Separator = " | "
                        },
                        new MiniWordForeach()
                        {
                            Value = new Dictionary<string, object>()
                            {
                                {"Jobs", "经理"},
                                {"Names", "小明"}
                            },
                            Separator = " | "
                        },
                    }
                },
            },
        }
    };
    MiniWord.SaveAsByTemplate(Path.Combine(output, "005.docx"), Path.Combine(baseDir, "words", "005.docx"), value);
    Console.WriteLine("插入循环表格成功");
}

在这里插入图片描述

在这里插入图片描述

双层for循环

 /// <summary>
 /// 插入双层for循环
 /// </summary>
 static void Insert2ForeachTable()
 {
     var baseDir = AppDomain.CurrentDomain.BaseDirectory;
     var output = Path.Combine(baseDir, "output");
     if (!Directory.Exists(output))
     {
         Directory.CreateDirectory(output);
     }
     var value = new
     {
         LoopData = new List<object>()
         {
             new {
                 Type="类型A",
                 Items = new List<object>() {new {Name = "A-1"}, new {Name = "A-2"},}
             },
             new
             {
                 Type="类型B",
                 Items = new List<object>() {new {Name = "B-1"}, new {Name = "B-2"}, new {Name = "B-3"},}
             },
         }
     };
     MiniWord.SaveAsByTemplate(Path.Combine(output, "007.docx"), Path.Combine(baseDir, "words", "007.docx"), value);
     Console.WriteLine("插入循环表格成功");
 }

在这里插入图片描述
在这里插入图片描述

条件判断

/// <summary>
/// 插入条件表格
/// </summary>
static void InsertIf()
{
    var baseDir = AppDomain.CurrentDomain.BaseDirectory;
    var output = Path.Combine(baseDir, "output");
    if (!Directory.Exists(output))
    {
        Directory.CreateDirectory(output);
    }
    var value = new Dictionary<string, object>()
    {
        ["Name"] = "张三"
    };
    MiniWord.SaveAsByTemplate(Path.Combine(output, "006_1.docx"), Path.Combine(baseDir, "words", "006.docx"), value);
    value = new Dictionary<string, object>()
    {
        ["Name"] = "李四"
    };
    MiniWord.SaveAsByTemplate(Path.Combine(output, "006_2.docx"), Path.Combine(baseDir, "words", "006.docx"), value);
    Console.WriteLine("插入条件表格成功");
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

for循环+条件判断

/// <summary>
/// 循环条件表格
/// </summary>
static void Insert2ForeachAndIfTable()
{
    var baseDir = AppDomain.CurrentDomain.BaseDirectory;
    var output = Path.Combine(baseDir, "output");
    if (!Directory.Exists(output))
    {
        Directory.CreateDirectory(output);
    }
    var value = new Dictionary<string, object>()
    {
        ["LoopData"] = new List<object>()
        {
            new {
                Type="类型A",
                Items = new List<object>() {new {Name = "A-1"}, new {Name = "A-2"},}
            },
            new
            {
                Type="类型B",
                Items = new List<object>() {new {Name = "B-1"}, new {Name = "B-2"}, new {Name = "B-3"},}
            },
        }
    };
    MiniWord.SaveAsByTemplate(Path.Combine(output, "008.docx"), Path.Combine(baseDir, "words", "008.docx"), value);
    Console.WriteLine("插入循环条件表格成功");
}

在这里插入图片描述

在这里插入图片描述

参考

https://gitee.com/dotnetchina/MiniWord


网站公告

今日签到

点亮在社区的每一天
去签到