上篇:【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