CMMI的过程文件自动化(一)

本文档介绍了如何使用json和Word模板自动化实现CMMI过程文件的生成。目标是减少手动整理工作,通过修改json数据和模板实现文档的动态更新。主要技术包括利用Word的书签填充功能和Newtonsoft的Json处理,通过遍历模板中的标签和json数据来填写内容,最终根据设定保存路径输出文档。在实现过程中,需注意调整Microsoft.Office.Interop.Word包的互操作类型属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目的

近期在学GJB 5000A和CMMI,里边涉及到大量的表单,手动整理太麻烦,打算借助json将word表单自动化实现。

设计中想让文档与程序尽量分离,后期的变更尽量少变更代码,仅通过改变json和WORD模板就实现自动化出具表单。

第一步先实现的是将json文件的内容填入word模板中,第一步实现后,后期只要实现不同的json文件与word模板就能出具相应额表单了。

思路

本软件涉及的技术主要是利用填写书签的方式完成Word的读写,具体涉及的技术可以和博客http://www.cnblogs.com/eye-like/p/4121219.html 中的类似。

json的读写主要是利用了newtonsoft的json处理方法,主要应用的是Linq方式。如果利用SelectToken应该可以让代码进一步精简,懒得改写了。

主要思想是:

  1. 先读取json文件中的template属性,取得需要的模板
  2. 读取WORD模板文件
  3. 遍历word模板中的标签,根据标签名称查找json文件中contents属性中每个对象对应的该属性,将属性值填入到生成的word文档
  4. 根据contents中的SaveAs属性和主菜单中的outDicrectory属性另存word文档
  5. 退出文档与程序
  6. 杀掉所有的word进程(缺少本步骤有时会报错)

需要注意的是,Word引用的包Microsoft.Office.Interop.Word的属性“嵌入式互操作类型”默认是“TRUE”,需要改成"False",否则编译会出错。

代码

具体代码如下所示:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Data;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Microsoft.Office.Interop.Word;
using Microsoft.Office;
using Microsoft.Office.Interop;

namespace inputoutput
{
   
   
    class Program
    {
   
   
        public static void killWinWordProcess()
        {
   
   
            System.Diagnostics.Process[] processes = System.Diagnostics.Process.GetProcessesByName("WINWORD");
            foreach (System.Diagnostics.Process process in processes)
            {
   
   
                bool b = process.MainWindowTitle == "";
                if (process.MainWindowTitle == "")
                {
   
   
                    process.Kill();
                }
            
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值