java 读取 ms project by MPXJ,projectmpxj,ProjectReade
分享于 点击 40241 次 点评:210
java 读取 ms project by MPXJ,projectmpxj,ProjectReade
ProjectReader reader = new MPPReader(); ProjectFile project = reader.read(Test.class.getResource("/bss4.mpp").getPath()); t.listHierarchy(project);public void listHierarchy(ProjectFile file){ for (Task task : file.getChildTasks()){ System.out.println("WBS: " + task.getWBS()); System.out.println("任务名称: " + task.getName()); System.out.println("工期: " + task.getDuration().toString()); System.out.println("计划开始时间: " + (task.getStart() == null ? "NA" : new SimpleDateFormat("yyyy-MM-dd").format(task.getStart()))); System.out.println("计划完成时间: " + (task.getFinish() == null ? "NA" : new SimpleDateFormat("yyyy-MM-dd").format(task.getFinish()))); System.out.println("实际开始时间: " + (task.getActualStart() == null ? "NA" : new SimpleDateFormat("yyyy-MM-dd").format(task.getActualStart()))); System.out.println("实际完成时间: " + (task.getActualFinish() == null ? "NA" : new SimpleDateFormat("yyyy-MM-dd").format(task.getActualFinish()))); StringBuilder resourceName = new StringBuilder(); for (ResourceAssignment assignment : task.getResourceAssignments()){ Resource resource = assignment.getResource(); if (resource != null){ resourceName.append(resource.getName()+" - " + resource.getPeakUnits() + ","); } } System.out.println("资源名称: " + resourceName.toString()); listHierarchy(task, " "); } System.out.println();}private void listHierarchy(Task tasks, String indent){ for (Task task : tasks.getChildTasks()){ System.out.println("WBS: " + task.getWBS()); System.out.println("任务名称: " + task.getName()); System.out.println("工期: " + task.getDuration().toString()); System.out.println("计划开始时间: " + (task.getStart() == null ? "NA" : new SimpleDateFormat("yyyy-MM-dd").format(task.getStart()))); System.out.println("计划完成时间: " + (task.getFinish() == null ? "NA" : new SimpleDateFormat("yyyy-MM-dd").format(task.getFinish()))); System.out.println("实际开始时间: " + (task.getActualStart() == null ? "NA" : new SimpleDateFormat("yyyy-MM-dd").format(task.getActualStart()))); System.out.println("实际完成时间: " + (task.getActualFinish() == null ? "NA" : new SimpleDateFormat("yyyy-MM-dd").format(task.getActualFinish()))); StringBuilder resourceName = new StringBuilder(); for (ResourceAssignment assignment : task.getResourceAssignments()){ Resource resource = assignment.getResource(); if (resource != null){ resourceName.append(resource.getName()+" - " + assignment.getUnits() + ",");//assignment.getUnits()获得单位百分比 } } System.out.println("资源名称: " + resourceName.toString()); listHierarchy(task, indent + " "); }}//该片段来自于http://byrx.net
用户点评