网上找到资料提供了遍历.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; } } }
相关推荐
这些模板的特点在于,它们都是以MPP文件格式存储,这是Project软件的原生文件格式,包含丰富的任务、资源、时间线和依赖关系信息,能够直观地展示项目全貌。使用这些模板,用户可以快速创建项目计划,调整任务和资源...
《Microsoft Project MPP文件详解与应用指南》 在项目管理领域,Microsoft Project是一款不可或缺的工具,它通过MPP(Microsoft Project Plan)文件格式,帮助用户有效地规划、组织和跟踪项目进度。本文将深入探讨...
MS Project 文件导入与操作相关知识点 MS Project 是 Microsoft 公司推出的项目管理软件,它提供了强大的项目计划、执行和监控功能。随着项目管理的日益复杂化,使用 MS Project 来管理项目变得越来越普遍。然而,...
本篇文章将深入探讨如何使用Java来导入并读取微软的Project文件,同时也提供了一套相关的代码示例。 首先,我们要知道微软的Project文件通常是以.mpp格式存储的,这些文件包含了项目的详细信息,如任务、资源、时间...
在IT行业中,mpp文件通常指的是Microsoft Project的项目文件,它用于存储项目计划、任务、资源、时间线等信息。在Java环境下,如果需要处理这样的文件,我们通常会借助于第三方库,例如`mpxj`。`mpxj`是一个开源的...
ms+project模板(mpp文件),该资源供自己使用,请大家不要盲目下载!ms+project模板(mpp文件),该资源供自己使用,请大家不要盲目下载!ms+project模板(mpp文件),该资源供自己使用,请大家不要盲目下载!
在Java开发中,有时我们需要处理Microsoft Project(MPP)文件,例如进行项目管理软件的数据导入导出。MPP文件是Microsoft Project用来存储项目计划、任务、资源和时间表等信息的标准格式。为了在Java环境中操作这些...
MPP是Microsoft Project的默认文件格式,用于存储项目的所有详细信息,包括任务、资源、时间线和预算等。 1. **MPP文件格式**: MPP文件是项目计划的核心,包含了项目的所有元素,如任务、资源、依赖关系、进度表和...
Java解析Project_mpp文件.docx
在IT行业中,有时我们需要处理各种类型的文件,例如项目管理中常用的Microsoft Project(MPP)文件。在这种情况下,标题“com读取mpp文件”指的是利用组件对象模型(Component Object Model,简称COM)接口来读取MPP...
MPP文件阅读器是一种专门用来打开、查看和打印Microsoft Project创建的项目管理文件的应用程序。在IT领域,项目管理是至关重要的,而MPP文件格式是Microsoft Project的标准文件格式,用于存储项目计划、任务分配、...
.net 读取 project mpp 项目文件 欢迎访问http://121.18.78.216
java生成project形式的xml、mpp 将xml形式的Project文件转成 mpp 走过的弯路 1.Project 直接导出 mpp文件,没有办法自定义列。 2.jacob 导出mpp文件 jawin.dll只支持32位。 3.Aspose-Tasks-Java不收费的版本只能导出...
MS Project 项目模板文件,包括企业信息化项目群、优化类项目计划模版、共享资源库、办公自动化项目、某机构项目管理实施计划、视频保安系统项目、邮件系统合并项目、项目变更案例(变更前)、项目变更案例(变更后)、...
在项目管理领域,Microsoft Project创建的.MPP文件是广泛使用的项目计划和跟踪工具。然而,不是每个人都拥有或熟悉Microsoft Project,这时就需要像Steelray Project Viewer这样的第三方软件来帮助我们查看和分析...
通过Excel的宏,用于mpp格式转为Excel格式。并能在Excel中根据进展情况自动显示日期单位的甘特图。
标题中的“ProjectViewer_365_PC_opdown_mpp_mpp文件_”表明这是一个与Microsoft Project Viewer相关的软件,特别强调了它支持打开.MPP文件。MPP文件是Microsoft Project的标准项目文件格式,用于存储项目计划、任务...
在.NET框架中,可以通过`Microsoft.Office.Interop.MSProject`命名空间来操作MSProject文件。这部分涉及到MSProject文件的基本读写功能。 #### 1.1 打开MSProject文件 通过`ApplicationClass`对象可以创建一个新的...
在Java开发环境中,有时我们需要处理特定格式的文件,如Microsoft Project的MPP文件。MPP文件主要用于项目管理,存储任务、资源、时间线等详细信息。为了在Java中解析这种文件,开发者通常会借助第三方库。本文将...