今天试着使用MPXJ API读取MS PROJECT 2007生成的MPP文件信息,测试代码如下: package com.pmo.testcase; import net.sf.mpxj.mpp.*; import net.sf.mpxj.MPXJException; import net.sf.mpxj.Resource; import net.sf.mpxj.ResourceAssignment; import net.sf.mpxj.Task; import net.sf.mpxj.ProjectFile; import java.util.List; import java.io.*; /** * @author Matianyi * */ public class mpxjtest { /** * @param args * @throws MPXJException */ public static void main(String[] args) throws MPXJException { // TODO Auto-generated method stub File file = new File("D://软件开发.mpp"); MPPReader mppRead = new MPPReader(); ProjectFile pf = mppRead.read(file); System.out.println("项目文件 : " + pf.getProjectFilePath()); List tasks = pf.getAllTasks(); mpxjtest mt = new mpxjtest(); System.out.println("总任务数: " + tasks.size()); System.out.println("ID|任务名|资源|开始时间|结束时间|完成百分比"); for (int i = 1; i < tasks.size(); i++) { System.out.println(((Task) tasks.get(i)).getUniqueID() + "|" + ((Task) tasks.get(i)).getName() + "|" + mt.getResource((Task) tasks.get(i)) + "|" + ((Task) tasks.get(i)).getStart() + "|" + ((Task) tasks.get(i)).getFinish() + "|" + ((Task) tasks.get(i)).getPercentageComplete()); } } public String getResource(Task task) { StringBuffer buf = new StringBuffer(); List assignments = task.getResourceAssignments(); for (int i = 0; i < assignments.size(); i++) { ResourceAssignment assignment = (ResourceAssignment) assignments .get(i); Resource resource = assignment.getResource(); if (resource != null) { buf.append(resource.getName()).append(" "); } } return buf.toString(); } } <