zoukankan      html  css  js  c++  java
  • C# 打开mpp文件(Microsoft object)问题总结

    有需求就有解决方案,早上还没有听说过什么是 mpp 文件,下午已经能成功的将功能实现,这难道就是程序员的职业素养?哈哈哈哈

    从网上找了很多方法,最后自己找到一个十分简单的打开 mpp 文件的方法:

            public void readMpp()
            {
                Object missing = Type.Missing;
                ApplicationClass prj = new ApplicationClass();
                prj.FileOpen("C:/Users/a001/Desktop/项目1.mpp",
                    false, missing, missing, missing, missing, missing, missing, missing,
                    missing, missing, PjPoolOpen.pjPoolReadWrite, missing, missing, missing, missing);
                System.Threading.Thread.Sleep(2000);//睡眠两秒
                string strmpp = "";
                foreach (Project proj in prj.Projects)
                {
                    foreach (Microsoft.Office.Interop.MSProject.Task task in proj.Tasks)
                    {
                        if (task == null)
                            continue;
                        //strmpp += "任务名称:" + task.Name + "," + task.UniqueID + ",资源名称:" + task.ResourceNames + "
    ";//用ajax来请求的时候,此格式非json格式,会报错
                        strmpp += "任务名称:" + task.Name + "," + task.UniqueID + ",资源名称:" + task.ResourceNames;//正确方法
                    }
                }
                prj.FileClose(PjSaveType.pjSave, false);//关闭
                prj.Quit(PjSaveType.pjSave);//关闭
    
                Response.Write(string.Format("{{ "errorcode": {0}, "errormessage": "{1}" }}", 1000, strmpp));
            }

    注意:

    1、使用C#的这种方法打开 mpp 文件时,电脑上必须安装 Microsoft object 这个软件(在测试时本人打开线程观测结果:会先将 Microsoft object 软件打开,而后关闭)

    问题:

    1、ApplicationClass 提示无法嵌入互操作类型,请改用使用的接口,如下:

     解决方案是:将引用 Microsoft.Office.Interop.MSProject 的属性中的 “嵌入互操作类型” 改为false  如下:

     2、上述代码中提到了要线程睡眠两秒,是因为我的 Microsoft object 软件未激活,会提示我是否激活,将这个会话框关闭才能读取到 mpp 文件中的数据,否则将会报错(睡眠两秒的意义就在于给我两秒钟的时间我去关闭这个会话窗,再说一点,激活是要 rmb 的,哈哈)

    如有问题,请留言或及时联系本人。

  • 相关阅读:
    Centos 7 KVM安装win10
    python3.6小程序
    linux随手笔记(Centos为主)
    python 3.6练习题(仿购物车)
    linux mint软件安装
    pacman详解及常见问题
    manjaro安装及设置
    Ansible安装及配置
    大盘分时黄白线
    渊海子平学习
  • 原文地址:https://www.cnblogs.com/ZbsCc/p/11639917.html
Copyright © 2011-2022 走看看