【问题标题】:Automating Ms-Project Import Wizard自动化 Ms-Project 导入向导
【发布时间】:2021-10-23 15:26:26
【问题描述】:

在 .NET 应用程序中,我使用 Microsoft.Office.Interop.MSProject 库来自动化并将数据写入 Ms-Project .Mpp 文件。需要创建数千个任务和资源分配,使用 Assignments.Add 等方法创建它们需要很长时间,总共需要 10 分钟。

在下面的链接中,有一个非常相似的问题,答案提到将数据导入 MS-Project 文件的最快方法是创建地图并使用“项目导入向导”。在答案添加自动化向导之后是另一个主题并且需要另一个问题,所以这就是那个问题;如果我创建地图并在 Excel 或 CSV 文件上创建数据,我该如何自动化项目导入向导,以便它使用特定地图从该文件导入数据,而无需手动用户干预。 How to Improve Performance when Loading Data into Microsoft Project with VSTO

编辑:

【问题讨论】:

    标签: c# ms-project


    【解决方案1】:

    只要地图存储在 global.mpt 文件中,自动导入向导以创建新的项目计划就像使用带有地图参数的 FileOpenEx 方法一样简单。这是一个让您入门的片段;根据需要进行调整:

    MSProject.Application projectApplication = new MSProject.Application();
    object missingValue = System.Reflection.Missing.Value;
    
    projectApplication.FileOpenEx("<your file name here>", false, PjMergeType.pjDoNotMerge,
                missingValue, missingValue, missingValue, missingValue, missingValue,
                missingValue, missingValue, "<your map name here>", 
                PjPoolOpen.pjPoolReadOnly, missingValue, missingValue,
                missingValue, missingValue, missingValue);
    

    注意:如果使用 FileOpenEx 方法将数据合并到活动文件中,请确保地图在该文件中。必要时使用OrganizerMoveItem 方法。

    【讨论】:

    • 谢谢Rachel的回复,我已经编辑了问题以包含FileOpenEx参数,所以要导入的数据是在一个Excel文件中,这个Excel文件名(包括路径)应该放在哪里?
    • 文件名,包括路径,是FileOpenEx方法的第一个参数。
    • 好吧,我想现在我明白了,我以为文件名应该是 Ms. Project 文件名,所以应该是 Excel 文件名吧?
    • 如果地图被定义为创建一个新文件,FileOpenEx 会将数据导入一个新项目(例如“Project1”)。如果地图被定义为将数据合并到现有文件中,它将合并到活动项目中。无论哪种方式,您都不需要提供项目文件的名称。
    猜你喜欢
    • 1970-01-01
    • 2021-07-23
    • 2015-12-20
    • 1970-01-01
    • 2015-09-23
    • 2013-07-06
    • 2015-09-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多