Сожалею, что это сделано специально, посмотрите на эту ошибку в Microsoft Connect http://connect.microsoft.com/VisualStudio/feedback/details/667973/tfs-2010-work-items-with-direct-links-query-goes-to-excel-as-a-flat-list#.
Однако, кажется, есть несколько обходных путей,
Если для просмотра результатов запроса требуется все, вы можете отправить сообщение по электронной почте или просмотреть результаты на портале Sharepoint. (Так как это, по-видимому, «по замыслу», кто-нибудь может сказать, что дизайн противоречив?)
Если требуется редактирование результатов, возможно, вы можете сделать запрос типа «Дерево рабочих элементов» .
Используйте TFS SDK для правильного создания документа Excel. Я провел некоторое исследование с этим, и это выполнимо, но так как нам нужно было только просмотр, # 1 достаточно. Создание созданного документа для редактирования может занять некоторое время.
PS - Я могу подтвердить, что я пытался экспортировать элементы дерева работ, чтобы преуспеть, и это сохраняет структуру ссылок в такте. Также см. Эту статью MSDN о том, как это сделать http://msdn.microsoft.com/en-us/library/dd286627.aspx
Но если вы хотите, чтобы вы могли использовать TFS API, я добавляю псевдокод ниже,
1. Используйте Open XML SDK 2.0 для Microsoft Office, чтобы подключиться к большому Excel и прочитать его http://msdn.microsoft.com/en-us/library/gg575571.aspx
2. Используйте API TFS для программного создания рабочих элементов
3. Создать ссылки между рабочими элементами http://blogs.microsoft.co.il/blogs/shair/archive/2010/02/27/tfs-api-part-22-create-link-between-work-item-parent-child-etc.aspx
private void ReadInformationFromExcelAndCreateLinkWorkItems()
{
using (SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Open(@"FilePath\fileName", false))
{
WorkbookPart workbookPart = spreadsheetDocument.WorkbookPart;
WorksheetPart worksheetPart = workbookPart.WorksheetParts.First();
SheetData sheetData = worksheetPart.Worksheet.Elements<SheetData>().First();
string text;
int WorkItemId = 0;
foreach (Row r in sheetData.Elements<Row>())
{
foreach (Cell c in r.Elements<Cell>())
{
// Loop through each row till you complete one logical block of work item Links.
var tfs = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("TfsUrl"));
var wiStore = tfs.GetService<WorkItemStore>();
WorkItem wi = new WorkItem(new WorkItemType // Create a new work item of the type as in your excel)
// associate all column cell values to the work item
wi.Save();
// This should give you an ID now
WorkItemId = wi.Id;
}
}
}
}
НТН
Приветствия, Тарун