普加项目管理中间件是用于跨浏览器和跨平台应用程序的功能齐全的 Gantt 图表,可满足项目管理应用程序的所有需求,是最完善的甘特图图表库。

除了上文介绍的加载json数据的方式展示外,更常用的方式是导入。

普加项目管理中间件支持导入微软project两种格式的文件,xml和mpp,这里的文件解析都是后台处理的,本文以.net为例。

前端提供了这样一个方法,可以弹出一个选择文件上传的窗口

var win = new PlusProject.ImportProjectWindow({
            project: this.project
        });
        win.setData();
        win.show();

上传之后后台接收文件,进行处理。

Object ImportProject()
    {
        //获取程序路径
        string tempFile = Request.PhysicalApplicationPath;
        string path = tempFile + "Upload\\";
        //找到目标文件对象
        HttpPostedFile uploadFile = Request.Files["Fdata"];
        bool isMPP = uploadFile.FileName.IndexOf(".mpp") != -1;
        bool isXML = uploadFile.FileName.IndexOf(".xml") != -1;
        if (!isXML && !isMPP)
        {
            throw new Exception("请上传导入.xml或.mpp文件!");
        }
        string FileName = uploadFile.FileName;
        FileName = FileName.Replace(".mpp", "");
        FileName = FileName.Replace(".xml", "");
        FileName = FileName + "_" + DateTime.Now.ToString("yyyyMMddhhmmss") + (isMPP ? ".mpp" : ".xml");

        // 如果有文件,则保存到一个地址
        if (uploadFile.ContentLength > 0)
        {
            string filePath = string.Format("{0}{1}{2}", tempFile, "Upload\\", FileName);
            uploadFile.SaveAs(filePath);
            //读取xml,保存项目
            Hashtable project = null;
            try
            {
                project = PluSoft.Utils.PlusProject.Read(path + FileName, false);
            }
            catch (Exception e)
            {
                throw e;
            }
            finally
            {
                System.IO.File.Delete(filePath);
            }
            return project;
        }
        return null;
    }