C#操作mpp文件代码参考

代码如下:

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Office.Interop.MSProject;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            Program pro = new Program();
            pro.readMpp();
            // pro.callMacro();
            //pro.createMpp();
        }
//调用mpp中定义的宏
        public void callMacro()
        {
            Object missing = Type.Missing;
            ApplicationClass prj = new ApplicationClass();
//打开mpp文件
            prj.FileOpen("C:/Documents and Settings/Administrator/My Documents/test.mpp",
                false, missing, missing, missing, missing, missing, missing, missing,
                missing, missing, PjPoolOpen.pjPoolReadWrite, missing, missing, missing, missing);
//调用名称为testMacro
            prj.Macro("testMacro");
//关闭,但不保存mpp
            prj.FileClose(PjSaveType.pjDoNotSave, false);
            prj.Quit(PjSaveType.pjDoNotSave);
        }

        public void readMpp()
        {
            Object missing = Type.Missing;
            ApplicationClass prj = new ApplicationClass();
            prj.FileOpen("D:/test.mpp",
                false, missing, missing, missing, missing, missing, missing, missing,
                missing, missing, PjPoolOpen.pjPoolReadWrite, missing, missing, missing, missing);
            foreach (Project proj in prj.Projects)
            {
                foreach (Task task in proj.Tasks)
                {
                    System.Console.WriteLine("|" + task.Name + "|" + task.UniqueID + "|" + task.ResourceNames + "|");
                }
            }
            prj.FileClose(PjSaveType.pjSave, false);
            prj.Quit(PjSaveType.pjSave);
            System.Console.Read();
        }

        public void createMpp()
        {
            Object missing = Type.Missing;
            ApplicationClass prj = new ApplicationClass();
            PjFileFormat format = PjFileFormat.pjMPP;//format定义   
            prj.Visible = true;
            prj.FileNew(Type.Missing, Type.Missing, Type.Missing, false);
            Project myProject = prj.ActiveProject;
            Task task = null;
            task = myProject.Tasks.Add("zhi", 1);
            task.Start = "2008-8-1";
            task.Finish = "2008-8-18";
            task.SetField(PjField.pjTaskNotes, "Task1");

            task = null;
            task = myProject.Tasks.Add("wenzhixing", 2);
            task.Start = "2008-8-8";
            task.Finish = "2008-8-28";
            task.ActualStart = "2008-9-8 8:00";
            task.ActualFinish = "2008-9-28 17:00";
            task.OutlineLevel = 2;
            task.SetField(PjField.pjTaskResourceNames, "wenzhi");

            task = null;
            task = myProject.Tasks.Add("wen", 3);
            task.Start = "2008-8-11";
            task.Finish = "2008-8-18";
            task.SetField(PjField.pjTaskNotes, "Task2");
            task.Notes += "hehe";
            task.OutlineLevel = 1;

            task = null;
            task = myProject.Tasks.Add("wen", 4);
            task.Start = "2008-8-18";
            task.Finish = "2008-8-28";
            task.OutlineLevel = 2;
            task.SetField(PjField.pjTaskResourceNames, "wenzhi");

            prj.FileSaveAs("C:/Documents and Settings/Administrator/My Documents/mjm.mpp",
                format, missing, false, missing, missing, missing, missing,
                missing, missing, PjPoolOpen.pjPoolReadWrite, missing, missing, missing, missing, missing, missing, missing, missing);
        }
    }
}


转载于:https://www.cnblogs.com/kidfruit/archive/2010/11/14/1877016.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值