向Word模板中填充数据

现在有这样的需求,给Word文档的指定位置填充上特定数据,例如我们有一个终端,用来打印员工的薪资证明,对于一个公司来说,他的薪资证明模板是固定的,变化的地方是员工姓名,部门,职位等。我们只需要将这些指定数据填写到指定位置即可。

1. 制作Word模板,

在Word中,有一个东东叫书签,我们可以在需要填充的地方预先插入特定名称的书签。

2. 在指定的Bookmark位置写入特定数据:

    MSWord.Application app = new MSWord.Application();

    string destPath = "薪资证明.docx";

    string targetPath = System.IO.Path.Combine(Directory.GetCurrentDirectory(), destPath);

    MSWord.Document doc = app.Documents.Open(targetPath, Visible:false);

    MSWord.Bookmark bmName = doc.Bookmarks.OfType<MSWord.Bookmark>().First(bm => bm.Name == "Bookmark_Name");

    if(bmName != null)
    {
        bmName.Range.Text = "Tom Wang";
    }

    MSWord.Bookmark bmDept = doc.Bookmarks.OfType<MSWord.Bookmark>().First(bm => bm.Name == "Bookmark_Department");

    if(bmDept != null)
    {
        bmDept.Range.Text = "Department";
    }

    MSWord.Bookmark bmJob = doc.Bookmarks.OfType<MSWord.Bookmark>().First(bm => bm.Name == "Bookmark_Job");

    if(bmJob != null)
    {
        bmJob.Range.Text = "Software engineer";
    }

    MSWord.Bookmark bmSalary = doc.Bookmarks.OfType<MSWord.Bookmark>().First(bm => bm.Name == "Bookmark_Salary");

    if(bmSalary != null)
    {
        bmSalary.Range.Text = "10000";
    }

    MSWord.Bookmark bmDate = doc.Bookmarks.OfType<MSWord.Bookmark>().First(bm => bm.Name == "Bookmark_Date");

    if(bmDate != null)
    {
        bmDate.Range.Text = DateTime.Now.ToShortDateString();
    }

    doc.Save();

    doc.Close();

    Marshal.ReleaseComObject(doc);

    Marshal.ReleaseComObject(app);

运行程序,可以将需要的数据插入指定位置。

感谢您的阅读。

转载于:https://www.cnblogs.com/yang-fei/p/5302954.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值