Dan*_*abo 3 c# asp.net ms-project mpxj
连接到 Microsoft Project 文件时,我很难找到任何使用 MPXJ 库的 C# 代码示例。有人可以发布一个片段,演示如何将 .mpp 文件中的表格内容写入屏幕吗?
任何链接/参考的奖励积分!
谢谢!
~丹
希望这会有所帮助。
首先你需要打开你的项目文件:
ProjectReader reader = ProjectReaderUtility.getProjectReader(inputFile);
ProjectFile projectFile = reader.read(inputFile);
Run Code Online (Sandbox Code Playgroud)
这假设您在 inputFile 字符串中有一个文件名。
下面的方法应该被视为伪代码(即我还没有编译它,摆脱其中的错误等等,并且它不是我写过的最优雅的东西),但它说明了该方法:
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
}
}
}
Run Code Online (Sandbox Code Playgroud)
这个想法是,您正在检索文件中存在的表列表,并为每个表确定它是任务表还是资源表。在此基础上,您将获取任务或资源列表,对其进行迭代,并为每个实例提取列值并显示它。请注意,我没有尝试以任何特定方式订购任务或资源。我将把它作为练习留给读者!
希望有帮助!
乔恩
| 归档时间: |
|
| 查看次数: |
3813 次 |
| 最近记录: |