网上找到资料提供了遍历.mpp文件中任务的功能:
http://blog.csdn.net/gxf36/article/details/5253792
=========================================================
但未提供遍历任务边关系(依赖关系)的功能。尝试并经过测试形成如下代码:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Office.Interop.MSProject; namespace JDPrj_Demo_DataTransfm { class MppIO { /// <summary> /// 获取.mpp文件中所有依赖关系 /// </summary> /// <param name="filepath"></param> /// <returns></returns> public List<Edge> getEdges(string filepath) { List<Edge> list = new List<Edge>(); Object missing = Type.Missing; ApplicationClass prj = new ApplicationClass(); prj.FileOpen(filepath, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, PjPoolOpen.pjPoolReadWrite, missing, missing, missing, missing); Edge edge = null; int graph = new Random().Next(100000); //遍历所有工程 foreach (Project proj in prj.Projects) { //遍历所有任务 foreach (Microsoft.Office.Interop.MSProject.Task task in proj.Tasks) { //遍历任务的依赖关系(边关系) foreach (TaskDependency dep in task.TaskDependencies) { //.mpp任务采用双向链表的方式存储边关系 //只取边的起始任务为当前任务的边,去重 if (dep.From.Index == task.Index) { edge = new Edge(graph, dep.From.Index, dep.To.Index, 0); list.Add(edge); //根据需要只需去双向链表的一条边,去重 break; } } } } return list; } } /// <summary> /// 边,任务与任务间,节点与节点间的边 /// </summary> public class Edge { public int graph_id = 0; //图编号 public int start_node = 0; //开始节点 public int end_node = 0; //结束节点 public int weight = 0; //边权重 public Edge() { } public Edge(int graph_id, int start_node, int end_node, int weight) { this.graph_id = graph_id; this.start_node = start_node; this.end_node = end_node; this.weight = weight; } } }
相关推荐
Project软件实用模板(MPP文件) 涵盖11个场景的模板,办公自动化项目、某机构项目管理实施计划、项目变更案例、项目计划变更记录、优化类项目计划模版、企业信息化项目等。
这是网上下载的project mpp文件,供初学者和项目管理者等参考。
ms+project模板(mpp文件),该资源供自己使用,请大家不要盲目下载!ms+project模板(mpp文件),该资源供自己使用,请大家不要盲目下载!ms+project模板(mpp文件),该资源供自己使用,请大家不要盲目下载!
java生成project形式的xml、mpp 将xml形式的Project文件转成 mpp 走过的弯路 1.Project 直接导出 mpp文件,没有办法自定义列。 2.jacob 导出mpp文件 jawin.dll只支持32位。 3.Aspose-Tasks-Java不收费的版本只能导出...
Java解析Project_mpp文件.docx
.net 读取 project mpp 项目文件 欢迎访问http://121.18.78.216
java读取mpp文件,来生成mpp文件的jar包。
通过java导入读取微软项目管理文件,包括所有的代码和project示范文件,请使用Idea开发工具。
MS+Project软件实用模板(MPP文件 MS+Project软件实用模板(MPP文件
MS Project 项目模板文件,包括企业信息化项目群、优化类项目计划模版、共享资源库、办公自动化项目、某机构项目管理实施计划、视频保安系统项目、邮件系统合并项目、项目变更案例(变更前)、项目变更案例(变更后)、...
vs2015 使用com读取mpp文件 必须安装ms project 否则读取失败
Project 2007 项目管理模板 MPP 41套项目管理project模板,涉及产品营销,开发,上市,办公,工程等方方面面的项目计划流程项目管理表
Steelray Project Viewer可以打开、导航、浏览、打印Microsoft Project的。mpp文件。作为Microsoft Project的合作伙伴,提供给你Project完美的补充。 安装步骤: 1、解压文件Steelray Project Viewer.zip; 2、...
java读取Microsoft Project的MPP文件的示例代码,已调试通过
办公自动化项目.mpp 共享资源库.mpp 某机构项目管理实施计划.mpp 企业信息化项目群.mpp 视频保安系统项目.mpp 项目变更案例(变更后).mpp 项目变更案例(变更前).mpp 项目计划变更记录.mpp 项目群案例.mpp 优化类项目...
Project 2007 项目管理模板 MPP格式 41个打包
共45个项目完整的project甘特图mpp格式,中英项目案例参考文档,包含软件完整开发项目,工程施工项目完整流程,信息化项目完整流程,产品开发规划完整流程,基础设施施工完整流程,财务人力资源系统规划完整流程,...
通过Excel的宏,用于mpp格式转为Excel格式。并能在Excel中根据进展情况自动显示日期单位的甘特图。
MPP文件 阅读器
用于打开.mpp文件Steelray Project Viewer软件