Microsoft Projectファイルに接続するときに、MPXJライブラリを使用してC#のコード例を検索しています。誰かが画面に.mppファイル内のテーブルの内容を書き込む方法を示すスニペットを投稿できますか?C#でのMPXJライブラリの例
リンク/参考文献のボーナスポイント!
ありがとうございます!
〜ダン
Microsoft Projectファイルに接続するときに、MPXJライブラリを使用してC#のコード例を検索しています。誰かが画面に.mppファイル内のテーブルの内容を書き込む方法を示すスニペットを投稿できますか?C#でのMPXJライブラリの例
リンク/参考文献のボーナスポイント!
ありがとうございます!
〜ダン
うまくいけばこれが役に立ちます。
まず、あなたのプロジェクトファイルを開く必要があります。
ProjectReader reader = ProjectReaderUtility.getProjectReader(inputFile);
ProjectFile projectFile = reader.read(inputFile);
これはあなたがで、inputFile文字列にファイル名を持っていることを前提としています。
以下の方法は、擬似コードとして扱うべきです(つまり、コンパイルしていない、バグを揺さぶっているなど、これまでに書いた中で最も優雅なものではありません)が、アプローチ:
public void dumpTables(ProjectFile file)
{
List tables = file.getTables();
Iterator iter = tables.iterator();
while (iter.hasNext())
{
Table table = (Table)iter.next();
if (table.getResourceFlag())
{
List resources = file.getAllResources();
Iterator resourceIter = resources.iterator();
while (resourceIter.hasNext())
{
Resource resource = (Resource)iter.next();
List columns = table.getColumns();
Iterator columnIter = columns.iterator();
while (columnIter.hasNext())
{
Column column = (Column)columnIter.next();
Object columnValue = resource.getCachedValue(column.getFieldType());
Console.Write(columnValue);
Console.Write(",");
}
Console.WriteLine();
}
}
else
{
List tasks = file.getAllTasks();
// etc. as above
}
}
}
アイデアは、あなたがファイルに存在するテーブルのリストを取得し、それは、タスクまたはリソーステーブルであれば、それぞれ1のために働いているということです。これに基づいて、タスクやリソースのリストを取得し、それを反復し、インスタンスごとに列の値を取り出して表示します。私は特定の方法でタスクやリソースを注文しようとしていないことに注意してください。私はそれを読者のための練習として残すでしょう!
希望に役立ちます!
ジョン
ありがとう、ジョン!あなたが維持している製品のユーザーにあなたが与える個人的な注意を本当に感謝します。あなたの継続的なコミットメントは非常に高く評価されています! –
クイック提案 - 応答を編集して、今後視聴者にCSファイルの先頭に必要なもの(net.sf.mpxjなどなど)を表示することができます。再度、感謝します! –