3
我有一個heckuva時間連接到Microsoft Project文件時使用MPXJ庫查找任何C#代碼示例。有人可以發佈一個片段,演示如何將.mpp文件中的表格內容寫入屏幕?在C#中的MPXJ庫的例子
任何鏈接/參考的獎勵積分!
謝謝!
〜丹
我有一個heckuva時間連接到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
}
}
}
的想法是,您檢索存在於文件中的表的列表,併爲每一個工作,如果它是一個任務或資源表。基於此,您將獲取任務或資源列表,並遍歷該列表,併爲每個實例提取列值並顯示它。請注意,我沒有試圖以任何特定的方式排列任務或資源。我將把它作爲讀者的練習!
希望有幫助!
Jon
謝謝,喬恩!我非常感謝您對您所維護產品的用戶給予的個人關注。非常感謝您對社區的持續承諾! – 2010-12-16 20:35:47
快速建議 - 您可能想編輯您的響應,以顯示未來的觀衆,包括他們需要在CS文件的頂部(使用net.sf.mpxj等等)。再次感謝! – 2010-12-16 21:21:11