求助用过MS Project的高手

2019-07-18 02:30发布

怎样利用labview编程将MS Project中的信息读出来?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
3条回答
ganmeibo
2019-07-18 07:56
看到一个使用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();  
    }  
}  

一周热门 更多>