目录
项目背景介绍
最近做了一个关于医疗机构证件审核的小型OA项目,项目中需要实现对医疗机构相关资料的文件归档功能,包含相关的文字信息、图片信息、表格信息以及pdf附件等文件的处理
关于Spire.Doc
详情参见 Spire.Doc
也可参见文档 .NET office开发组件_蓝晶之心的博客-CSDN博客查看简单介绍
功能实现
Nuget中安装 FreeSpire.Doc、FreeSpire.PDF、iTextSharp.LGPLv2.Core
创建Spire.Doc 帮助类SpireDocHelper.cs
模板文字替换方法
/// <summary>
/// word 模板替换
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="etity"></param>
/// <param name="doc"></param>
private static void ReplaceKey<T>(T etity, Spire.Doc.Document doc)
{
Type entityType = typeof(T);
PropertyInfo[] properties = entityType.GetProperties();
string entityName = entityType.Name;//实体类名称
foreach (var p in properties)
{
string propteryName = "{$" + p.Name + "}";//Word模板中设定的需要替换的标签
object value = p.GetValue(etity);
if (value == null)
{
value = "";
}
doc.Replace(propteryName, value.ToString(), true, true);
}
}
调用示例:
//Entity 数据信息
PublicNoticeView viewData = new PublicNoticeView();
viewData.OrgName = orgInfo.DeptName;
viewData.PersonName = legalPerson.PersonName;
viewData.OrgType = orgInfo.DeptType;
viewData.OrgAddress = orgProfile.OrgAddress;
viewData.ServiceTarget = orgProfile.ServiceTarget;
viewData.BedNum = (orgProfile.BedNum ?? 0).ToString();
viewData.ToothChairNum= (orgProfile.ToothChairNum ?? 0).ToString();
viewData.DiagnosisItems = diagnosisInfoTxt.ToString().TrimEnd('、');
viewData.OperationNature = orgProfile.OperationNature;
//加载文档
Spire.Doc.Document doc = new Spire.Doc.Document();
doc.LoadFromFile(@"D:\templete.docx");//加载模板文件路径
ReplaceKey(viewData, doc);
//保存替换后的模板文件
string savePath = @"D:\"+ "newTemplete.docx";
if (File.Exists(savePath))
{
File.Delete(savePath);//删除原文件
}
doc.SaveToFile(savePath, FileFormat.Docx);
doc.Close();
文档插入附件
/// <summary>
/// 文档插入附件
/// </summary>
/// <param name="doc"></param>
/// <param name="filePath">附件路径</param>
/// <param name="docRootPath">文件根目录</param>
private void InsertFile(Spire.Doc.Document doc, string filePath, string docRootPath)
{
string fullPath = docRootPath + filePath;
if (File.Exists(fullPath))
{
try
{
string extension = Path.GetExtension(fullPath).ToLower();//获取文件名后缀
//图片
if (extension == ".png" || extension == ".jpg" || extension == ".jpeg" || extension == ".bmp")
{
InsertImg(doc, fullPath);
}
else if (exte

该文章介绍了如何利用Spire.Doc组件在.NET环境中实现Word文档的模板文字替换、插入附件、电子签名、创建复选框、去除空白节以及动态添加表格数据等功能,用于医疗机构证件审核的OA项目文档归档。

3305

被折叠的 条评论
为什么被折叠?



