首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C#中的MPXJ库示例

C#中的MPXJ库示例
EN

Stack Overflow用户
提问于 2010-12-16 05:11:44
回答 1查看 3.4K关注 0票数 3

在连接到Microsoft Project文件时,我使用MPXJ库查找任何C#代码示例都很费劲。有没有人可以发布一个演示如何将.mpp文件中的表格内容写到屏幕上的代码片段?

任何链接/参考资料的加分!

谢谢!

~丹

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-12-16 20:46:08

希望这能有所帮助。

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

代码语言:javascript
复制
ProjectReader reader = ProjectReaderUtility.getProjectReader(inputFile);
ProjectFile projectFile = reader.read(inputFile);

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

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

代码语言:javascript
复制
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表。在此基础上,您将获取任务或资源的列表,遍历该列表,并为每个实例提取列值并显示它。请注意,我没有尝试以任何特定的方式对任务或资源进行排序。我将把它作为练习留给读者!

希望这能有所帮助!

琼恩

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4454923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档