繁体   English   中英

如何打开 mpx 项目文件,然后将其另存为 mpp 项目?

[英]how can i open a mpx project file and then save it as mpp project?

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

我知道不推荐使用MsOffice中的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);

导入库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 = "MSProject.mpp"; 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;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM