MPXJ 是一个用于处理 Microsoft Project 文件格式(.mpp 和 .mpx)的 Java 库。要使用 MPXJ 解析 MPX 文件,请按照以下步骤操作:
pom.xml
文件中添加以下依赖项: <groupId>net.sf.mpxj</groupId>
<artifactId>mpxj</artifactId>
<version>8.5.3</version>
</dependency>
如果使用 Gradle,可以在 build.gradle
文件中添加以下依赖项:
implementation 'net.sf.mpxj:mpxj:8.5.3'
import java.io.File;
import java.io.IOException;
import net.sf.mpxj.MPXReader;
import net.sf.mpxj.ProjectFile;
import net.sf.mpxj.Task;
import net.sf.mpxj.Resource;
public class MPXJExample {
public static void main(String[] args) {
// 指定 MPX 文件路径
String mpxFilePath = "path/to/your/mpxfile.mpx";
File mpxFile = new File(mpxFilePath);
try {
// 创建 MPXReader 实例
MPXReader reader = new MPXReader();
// 读取 MPX 文件
ProjectFile projectFile = reader.read(mpxFile);
// 获取任务和资源信息
for (Task task : projectFile.getTasks()) {
System.out.println("Task Name: " + task.getName());
System.out.println("Task Start Date: " + task.getStart());
System.out.println("Task Finish Date: " + task.getFinish());
System.out.println("Task Duration: " + task.getDuration());
System.out.println("Task Percent Complete: " + task.getPercentageComplete());
System.out.println("-----------------------------");
}
for (Resource resource : projectFile.getResources()) {
System.out.println("Resource Name: " + resource.getName());
System.out.println("Resource Type: " + resource.getType());
System.out.println("Resource Max Units: " + resource.getMaxUnits());
System.out.println("-----------------------------");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
将上述代码中的 path/to/your/mpxfile.mpx
替换为实际的 MPX 文件路径。运行程序后,它将解析 MPX 文件并输出任务和资源信息。
注意:这个示例仅展示了如何使用 MPXJ 读取 MPX 文件的基本信息。您可以根据需要修改代码以提取其他数据或执行其他操作。更多关于 MPXJ 的信息和示例,请参阅官方文档:https://www.mpxj.org/docs/index.html