MPXJ

MSPのファイルをJavaから利用できるライブラリ
http://mpxj.sourceforge.net/index.html

ファイルを開く

MPPFile file = new MPPFile(ファイル名);

タスクの取り出し

com.tapsterrock.mpx.Taskを利用します。

List tasks = file.getAllTasks();

リソースの取り出し

com.tapsterrock.mpx.Resourceを利用します。

List res = file.getAllResources();

タスクにリソースをアサイ

task.addResourceAssignment(resource);

ファイルの書き出し

MPPファイルに書き出すことはできませんが、MPXおよびMSPDI(XML)ファイルに書き出すことができます。

MPXファイルへの書き出し

com.tapsterrock.mpp.MPPFileを利用することができます。
このスーパークラスがMPXFileなのでそのwrite()メソッドを利用します。

MSPDIファイルへの書き出し

com.tapsterrock.mspdi.MSPDIFile#write(OutputStream);
を利用する。

ファイルの書き出しはダウンロードしたファイルでは日本語対応しません。
そのため、以下の修正をする必要があります。

LocaleData_jaクラスの追加

LocalData.javaをコピーし、LocaleData_ja.javaを作成し、

  • LocalDataとなっている場所を置き換える。
  • 以下の修正をおこなう。

{CODE_PAGE, CodePage.ANSI}を
{CODE_PAGE, CodePage.JAPAN}にする。

CodePageクラスへの追加

com.tapsterrock.mpx.CodePageクラスに以下の内容を追加します。

public static final CodePage JAPAN = new CodePage("Japan", "Windows-31J");