MPXJ 是一個用于處理 Microsoft Project 文件格式(.mpp)的 Java 庫。要使用 MPXJ 管理任務,首先需要將 MPXJ 添加到項目中。以下是使用 Maven 或 Gradle 添加 MPXJ 依賴的方法:
Maven:
<groupId>net.sf.mpxj</groupId>
<artifactId>mpxj</artifactId>
<version>8.5.1</version>
</dependency>
Gradle:
implementation 'net.sf.mpxj:mpxj:8.5.1'
接下來,可以使用 MPXJ 提供的 API 來讀取、創建和修改任務。以下是一些常見操作的示例:
import net.sf.mpxj.ProjectFile;
import net.sf.mpxj.Task;
import net.sf.mpxj.reader.ProjectReader;
import java.io.File;
import java.util.List;
public class MPXJExample {
public static void main(String[] args) throws Exception {
File file = new File("example.mpp");
ProjectReader reader = new ProjectReader();
ProjectFile projectFile = reader.read(file);
List<Task> tasks = projectFile.getAllTasks();
for (Task task : tasks) {
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());
}
}
}
import net.sf.mpxj.ProjectFile;
import net.sf.mpxj.Task;
import net.sf.mpxj.writer.ProjectWriter;
import java.io.File;
import java.util.Date;
public class MPXJExample {
public static void main(String[] args) throws Exception {
ProjectFile projectFile = new ProjectFile();
Task task = projectFile.addTask();
task.setName("New Task");
task.setStart(new Date());
task.setDuration(projectFile.getDefaultDuration(1)); // 1 day duration
ProjectWriter writer = new ProjectWriter();
writer.write(projectFile, new File("output.mpp"));
}
}
import net.sf.mpxj.ProjectFile;
import net.sf.mpxj.Task;
import net.sf.mpxj.reader.ProjectReader;
import net.sf.mpxj.writer.ProjectWriter;
import java.io.File;
import java.util.List;
public class MPXJExample {
public static void main(String[] args) throws Exception {
File file = new File("example.mpp");
ProjectReader reader = new ProjectReader();
ProjectFile projectFile = reader.read(file);
List<Task> tasks = projectFile.getAllTasks();
for (Task task : tasks) {
if (task.getName().equals("Task to update")) {
task.setDuration(projectFile.getDefaultDuration(2)); // Update duration to 2 days
break;
}
}
ProjectWriter writer = new ProjectWriter();
writer.write(projectFile, new File("updated.mpp"));
}
}
這些示例展示了如何使用 MPXJ 庫來管理 Microsoft Project 文件中的任務。根據需求,可以使用 MPXJ 提供的其他 API 來實現更復雜的功能。更多關于 MPXJ 的信息和示例,請參閱官方文檔:https://www.mpxj.org/docs/index.html