
c#操作.mpp文件
发布日期:2021-05-09 04:01:17
浏览次数:20
分类:博客文章
本文共 3833 字,大约阅读时间需要 12 分钟。
原文地址:http://mjm13.iteye.com/blog/532404
所需设置
在工程中增加引用Microsoft Project 11.0 Object Library,该引用在com选项卡中。 注意 Microsoft Project 11.0 Object Library是本机安装Microsoft Project以后才能引用的。 如果引用之后运行程序报错: 检索 COM 类工厂中 CLSID 为 {…………} 的组件时失败,原因是出现以下错误: …………。 请在控制面板-》管理工具-》组件服务-》计算机-》我的电脑-》DCom配置-》找到Microsoft Project Basic 之后单击属性打开此应用程序的属性对话框,单击"安全"选项卡,分别在"启动和激活权限"和"访问权限"组中选中"自定义"。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); } }}
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2025年03月29日 19时23分18秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
RESTful API 介绍,设计
2021-05-09
asp.net中用FileStream类实现下载文件功能,自定义下载路径,像IE下载一样
2021-05-09
C#获取Excel中所有的Sheet名称
2021-05-09
unity3d由于Camera.main.transform报空引用错误的解决方案
2021-05-09
SQL Syscolumns
2021-05-09
jQuery实现日期字符串格式化
2021-05-09
vue学习笔记(十)路由
2021-05-09
[最全整理]关于决策树的一切
2021-05-09
100天搞定机器学习|Day9-12 支持向量机
2021-05-09
100天搞定机器学习|Day19-20 加州理工学院公开课:机器学习与数据挖掘
2021-05-09
100天搞定机器学习|Day22 机器为什么能学习?
2021-05-09
100天搞定机器学习|day37 无公式理解反向传播算法之精髓
2021-05-09
《统计学习方法》极简笔记P2:感知机数学推导
2021-05-09
数据工程师必备的8项技能,不要只知道Python!
2021-05-09
R in action读书笔记(3)-第六章:基本图形
2021-05-09
R in action读书笔记(19)第十四章 主成分和因子分析
2021-05-09
CISC和RISC是什么?它们的特点和区别?
2021-05-09
iOS UIAlertController
2021-05-09
iOS UISlider的使用
2021-05-09
iOS Xcode 打包之后,不能输出日志
2021-05-09