【问题标题】:how can i open a mpx project file and then save it as mpp project?如何打开 mpx 项目文件,然后将其另存为 mpp 项目?
【发布时间】:2012-12-25 11:44:34
【问题描述】:

我在 Asp .Net Mvc3 中有一个应用程序,我正在使用 mpxj 库来生成一个项目文件(扩展名为 mpx)。但是这个文件不包含任务的日期,然后我想用 Ms Project 打开文件,然后用新格式保存(Ms 项目为任务创建日期)。细节是我想自动完成。可能吗?最好的方法是什么?

【问题讨论】:

    标签: c# asp.net ms-project aspose mpxj


    【解决方案1】:

    我知道在 Asp.NET 中不推荐 interop MsOffice http://support.microsoft.com/kb/257757。 但是需要自动计算日期,我正在处理错误,我正在使用MsProject Interop。这是我的代码:

    Microsoft.Office.Interop.MSProject.Application app = new Microsoft.Office.Interop.MSProject.Application();
    app.DisplayAlerts = false;
    app.AskToUpdateLinks = false;
    
    app.FileOpenEx(
            Server.MapPath("") + "\\sample.mpx",
            false,
            Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,
            PjPoolOpen.pjPoolReadWrite, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
             Microsoft.Office.Interop.MSProject.Project pj=app.ActiveProject;
    
    app.CalculateAll(); //Para calcular las fechas
    
    app.FileSaveAs(Server.MapPath("") + "\\sample.mpp",PjFileFormat.pjMPP, Type.Missing, Type.Missing,Type.Missing,           Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing);
    

    【讨论】:

      【解决方案2】:

      导入库Microsoft.Office.Interop.MSProject

      从 ASP.NET Web 窗体中查看我的代码。您可以对任何版本的 ASP 执行相同的操作;你也可以用 ASP.NET Core 来做,但这会改变一些小事情。

      1. 如果你注意到了,我将文件保存在路径 c:\temp

      2. 我将前面的文件作为变量fu_upload 进行处理,然后保存文件并打开以供阅读。

         ApplicationClass appclass = new ApplicationClass();
        
         object oMissing = System.Reflection.Missing.Value;
         object mppfile = @"c:\Temp";
         if (fu_Upload.PostedFile.FileName.Contains(@"\"))
             mppfile += fu_Upload.PostedFile.FileName.Substring(fu_Upload.PostedFile.FileName.LastIndexOf("\\"), fu_Upload.PostedFile.FileName.Length - fu_Upload.PostedFile.FileName.LastIndexOf('\\'));// fu_Upload.PostedFiles[0].FileName;
         else
             mppfile += @"\" + fu_Upload.PostedFile.FileName;
         fu_Upload.PostedFile.SaveAs(mppfile.ToString());
         object oFormat = "sample.mpx";
         object oReadOnly = true;
        
         PathFile = mppfile.ToString();
        
         UploadFileToFileSpacePage(fu_Upload, PathFile);
        
         appclass.DisplayAlerts = false;
         //    var projectdoc ;
         appclass.FileOpen(mppfile, oReadOnly, Microsoft.Office.Interop.MSProject.PjMergeType.pjDoNotMerge, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oFormat, oMissing, Microsoft.Office.Interop.MSProject.PjPoolOpen.pjPoolReadOnly, oMissing, oMissing, oMissing, oMissing);
        
         Microsoft.Office.Interop.MSProject.Project project = appclass.ActiveProject;
        
         return project;
        

      【讨论】:

        猜你喜欢
        • 2019-06-17
        • 2011-04-09
        • 2019-11-15
        • 2014-02-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-19
        • 1970-01-01
        相关资源
        最近更新 更多