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