C#中MPXJ库的示例

在连接到Microsoft Project文件时,我正在寻找使用MPXJ库的任何C#代码示例。 有人可以发一个片段演示如何将.mpp文件中的表内容写入屏幕吗?

任何链接/参考的奖励积分!

谢谢!

〜丹

希望这会有所帮助。

首先,您需要打开您的项目文件:

ProjectReader reader = ProjectReaderUtility.getProjectReader(inputFile); ProjectFile projectFile = reader.read(inputFile); 

这假设您在inputFile字符串中有一个文件名。

下面的方法应该被视为伪代码(即我没有编译它,动摇它的bug等等,这不是我写过的最优雅的东西),但它说明了这种方法:

 public void dumpTables(ProjectFile file) { List tables = file.getTables(); Iterator iter = tables.iterator(); while (iter.hasNext()) { Table table = (Table)iter.next(); if (table.getResourceFlag()) { List resources = file.getAllResources(); Iterator resourceIter = resources.iterator(); while (resourceIter.hasNext()) { Resource resource = (Resource)iter.next(); List columns = table.getColumns(); Iterator columnIter = columns.iterator(); while (columnIter.hasNext()) { Column column = (Column)columnIter.next(); Object columnValue = resource.getCachedValue(column.getFieldType()); Console.Write(columnValue); Console.Write(","); } Console.WriteLine(); } } else { List tasks = file.getAllTasks(); // etc. as above } } } 

我们的想法是,您正在检索文件中存在的表的列表,以及每个表中是否为Task或Resource表的表。 在此基础上,您将获取任务或资源列表,迭代它,并为每个实例提取列值并显示它。 请注意,我没有尝试以任何特定方式订购任务或资源。 我会把它留给读者练习!

希望有所帮助!

乔恩