【C#】C#使用Microsoft.Office.Interop.Word操作Word文档,向表格插入图片

上篇:【C#】C#使用Microsoft.Office.Interop.Word操作Word文档,替换文本

Word模板:

代码:

try
{
    Application app = new Application();

    string templetFileName = @"E:\BT\Test3.docx";
    string newFileName = $@"E:\BT\Test{DateTime.Now.ToString("yyyyMMddHHmmss")}.docx";
    //File.Copy(templetFileName, newFileName);

    object oMissing = System.Reflection.Missing.Value;
    object replace = WdReplace.wdReplaceAll;
    //object objNewFileName = newFileName;
    //Document doc = app.Documents.Open(ref objNewFileName,
    //    ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
    //    ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
    //    ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);
    Document doc = app.Documents.Open(templetFileName);

    Dictionary<string, string> dicDatas = new Dictionary<string, string>()
    {
        { "{姓名}","Bob" },{ "{年龄}","18" },{ "{身份}","学生" }
    };

    foreach (var item in dicDatas)
    {
        app.Selection.Find.ClearFormatting();
        app.Selection.Find.Replacement.ClearFormatting();
        app.Selection.Find.Text = item.Key;
        app.Selection.Find.Replacement.Text = item.Value;

        app.Selection.Find.Execute(
            ref oMissing, ref oMissing, ref oMissing, ref oMissing,
            ref oMissing, ref oMissing, ref oMissing, ref oMissing,
            ref oMissing, ref oMissing, ref replace, ref oMissing,
            ref oMissing, ref oMissing, ref oMissing);

    }

    //获取表格,索引从1开始
    Table table = doc.Tables[1];
    object Range = table.Cell(4, 1).Range;

    //居中显示
    table.Cell(4, 1).Range.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphCenter;

    string picFileName = @"E:\BT\pic.png";
    object LinkToFile = false;
    object SaveWithDocument = true;
    doc.Application.ActiveDocument.InlineShapes.AddPicture(picFileName, ref LinkToFile, ref SaveWithDocument, ref Range);

    doc.Application.ActiveDocument.InlineShapes[1].Width = 300;//图片宽度
    doc.Application.ActiveDocument.InlineShapes[1].Height = 180;//图片高度


    //doc.Save();
    doc.SaveAs2(newFileName);

    //doc.Close(ref oMissing, ref oMissing, ref oMissing);
    //app.Quit(ref oMissing, ref oMissing, ref oMissing);
    doc.Close();
    app.Quit();
}
catch (Exception ex)
{
    Console.WriteLine(ex.ToString());
}

Console.WriteLine("Success");
Console.ReadKey();

效果:

参考:

https://www.cnblogs.com/superfeeling/p/12302335.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GreAmbWang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值